From 230295f2bbbe142f7752353bdeb5c29ad4e23f05 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Thu, 16 Jul 2026 19:42:08 +0000 Subject: [PATCH 1/2] ci: regenerated with OpenAPI Doc , Speakeasy CLI 1.787.0 --- .speakeasy/gen.lock | 1148 +- .speakeasy/gen.yaml | 2 +- .speakeasy/out.openapi.yaml | 35867 ++++++++-------- .speakeasy/workflow.lock | 10 +- RELEASES.md | 12 +- docs/components/additionaltoolsitemtool.mdx | 8 +- .../additionaltoolsitemtoolfunction.mdx | 14 +- .../additionaltoolsitemtooltype.mdx | 15 + .../additionaltoolsitemtypefunction.mdx | 15 - docs/components/advisornestedtool.mdx | 4 +- docs/components/agent.mdx | 8 +- docs/components/agentmessageitem.mdx | 2 +- docs/components/allowedtoolsunion.mdx | 6 - docs/components/architecture.mdx | 2 +- .../badgatewayresponseerrordata.mdx | 10 +- .../badrequestresponseerrordata.mdx | 10 +- docs/components/baseinputsphaseunion.mdx | 6 - docs/components/baseinputsunion.mdx | 6 - docs/components/byokproviderslug.mdx | 1 + docs/components/caching.mdx | 13 - docs/components/chatassistantmessage.mdx | 2 +- .../chatassistantmessagecontent.mdx | 6 - .../chatfunctiontoolfunctionfunction.mdx | 2 +- docs/components/chatjsonschemaconfig.mdx | 2 +- docs/components/chatrequest.mdx | 2 +- docs/components/chatstreamdelta.mdx | 2 +- docs/components/cleartoolinputs.mdx | 6 - docs/components/compactionitem.mdx | 2 +- docs/components/compoundfilter.mdx | 2 +- docs/components/conflictresponseerrordata.mdx | 10 +- docs/components/contentencryptedcontent.mdx | 2 +- docs/components/contentservertooluse.mdx | 2 +- docs/components/contenttooluse.mdx | 2 +- docs/components/contextcompactionitem.mdx | 2 +- .../createobservabilitydestinationrequest.mdx | 2 +- docs/components/debug.mdx | 2 +- .../easyinputmessagecontentunion2.mdx | 6 - .../components/easyinputmessagephaseunion.mdx | 6 - .../edgenetworktimeoutresponseerrordata.mdx | 10 +- docs/components/filtersunion.mdx | 6 - .../components/forbiddenresponseerrordata.mdx | 10 +- docs/components/formatjsonschemaconfig.mdx | 2 +- docs/components/functioncalloutputitem.mdx | 2 +- .../functioncalloutputitemstatus.mdx | 21 - docs/components/fusionplugintool.mdx | 2 +- .../components/fusionservertoolconfigtool.mdx | 2 +- docs/components/imageconfig.mdx | 4 +- ...gegenerationproviderpreferencesoptions.mdx | 251 +- ...imagegenerationproviderpreferencessort.mdx | 6 - .../imagegenerationservertoolconfigunion.mdx | 4 +- docs/components/input2.mdx | 2 +- docs/components/inputschema.mdx | 12 +- docs/components/inputscontent2.mdx | 6 - docs/components/inputsphaseunion.mdx | 6 - .../internalserverresponseerrordata.mdx | 10 +- docs/components/listendpointsresponse.mdx | 16 +- docs/components/localshellcalloutputitem.mdx | 12 +- .../localshellcalloutputitemstatus.mdx | 21 - docs/components/mcplisttoolsitemtool.mdx | 12 +- .../messagesadvisortoolresultblock.mdx | 2 +- docs/components/messagesfallbackparam.mdx | 2 +- .../components/messagesoutputconfigformat.mdx | 2 +- docs/components/messagesrequesttool.mdx | 8 +- docs/components/namespacefunctiontool.mdx | 4 +- docs/components/notfoundresponseerrordata.mdx | 10 +- .../openairesponsefunctiontoolcalloutput.mdx | 14 +- ...airesponsefunctiontoolcalloutputstatus.mdx | 21 - docs/components/openresponsescreatedevent.mdx | 10 +- .../openresponsesinprogressevent.mdx | 10 +- .../openresponsesresulttoolfunction.mdx | 2 +- docs/components/outputcomputercallitem.mdx | 2 +- .../components/outputmemoryservertoolitem.mdx | 2 +- .../outputmessageitemphaseunion.mdx | 6 - docs/components/outputmessagephaseunion.mdx | 6 - docs/components/parameters1.mdx | 24 + docs/components/parameters2.mdx | 24 + docs/components/parameters3.mdx | 36 + .../payloadtoolargeresponseerrordata.mdx | 10 +- .../paymentrequiredresponseerrordata.mdx | 10 +- docs/components/pipelinestage.mdx | 2 +- docs/components/preferredmaxlatency.mdx | 6 - docs/components/preferredminthroughput.mdx | 6 - docs/components/presetdesignatedversion.mdx | 20 +- docs/components/providername.mdx | 5 +- docs/components/provideroptions.mdx | 251 +- .../provideroverloadedresponseerrordata.mdx | 10 +- docs/components/providerpreferencessort.mdx | 6 - .../providerresponseprovidername.mdx | 3 +- docs/components/publicendpoint.mdx | 2 +- .../components/publicendpointquantization.mdx | 27 - docs/components/reasoningconfig.mdx | 3 - .../requesttimeoutresponseerrordata.mdx | 10 +- docs/components/requireapprovalunion.mdx | 6 - docs/components/responsesrequest.mdx | 2 +- .../responsesrequesttoolfunction.mdx | 2 +- .../components/responsesstreamingresponse.mdx | 6 +- docs/components/routerparams.mdx | 2 +- .../serviceunavailableresponseerrordata.mdx | 10 +- docs/components/shellcallitem.mdx | 16 +- docs/components/shellcallitemstatus.mdx | 21 - docs/components/shellcalloutputitem.mdx | 16 +- docs/components/shellcalloutputitemoutput.mdx | 12 +- docs/components/shellcalloutputitemstatus.mdx | 21 - docs/components/stop.mdx | 6 - .../streameventsresponsecompleted.mdx | 10 +- .../components/streameventsresponsefailed.mdx | 10 +- .../streameventsresponseincomplete.mdx | 10 +- docs/components/subagentnestedtool.mdx | 4 +- docs/components/tokenizer.mdx | 40 - docs/components/tooladvisor20260301.mdx | 2 +- docs/components/toolchoiceallowed.mdx | 2 +- docs/components/tooltypeephemeral.mdx | 15 - .../toomanyrequestsresponseerrordata.mdx | 10 +- docs/components/traceconfig.mdx | 2 +- .../unauthorizedresponseerrordata.mdx | 10 +- .../unprocessableentityresponseerrordata.mdx | 10 +- .../updateobservabilitydestinationrequest.mdx | 2 +- docs/components/usage.mdx | 3 - .../videogenerationrequestoptions.mdx | 251 +- docs/errors/badgatewayresponseerror.mdx | 2 +- docs/errors/badrequestresponseerror.mdx | 2 +- docs/errors/conflictresponseerror.mdx | 2 +- .../edgenetworktimeoutresponseerror.mdx | 2 +- docs/errors/forbiddenresponseerror.mdx | 2 +- docs/errors/internalserverresponseerror.mdx | 2 +- docs/errors/notfoundresponseerror.mdx | 2 +- docs/errors/payloadtoolargeresponseerror.mdx | 2 +- docs/errors/paymentrequiredresponseerror.mdx | 2 +- .../provideroverloadedresponseerror.mdx | 2 +- docs/errors/requesttimeoutresponseerror.mdx | 2 +- .../serviceunavailableresponseerror.mdx | 2 +- docs/errors/toomanyrequestsresponseerror.mdx | 2 +- docs/errors/unauthorizedresponseerror.mdx | 2 +- .../unprocessableentityresponseerror.mdx | 2 +- docs/operations/getapprankingsrequest.mdx | 2 +- docs/operations/getmodelsrequest.mdx | 2 +- docs/operations/listbyokkeysrequest.mdx | 2 +- .../listembeddingsmodelsrequest.mdx | 2 +- docs/operations/listendpointsresponse.mdx | 6 +- .../listguardrailkeyassignmentsrequest.mdx | 2 +- .../listguardrailmemberassignmentsrequest.mdx | 2 +- docs/operations/listguardrailsrequest.mdx | 2 +- docs/operations/listkeyassignmentsrequest.mdx | 2 +- .../listmemberassignmentsrequest.mdx | 2 +- docs/operations/listmodelsuserrequest.mdx | 2 +- .../listobservabilitydestinationsrequest.mdx | 2 +- .../listorganizationmembersrequest.mdx | 2 +- docs/operations/listpresetsrequest.mdx | 2 +- docs/operations/listpresetversionsrequest.mdx | 2 +- docs/operations/listrequest.mdx | 2 +- .../listworkspacemembersrequest.mdx | 2 +- docs/operations/listworkspacesrequest.mdx | 2 +- docs/operations/provider.mdx | 1 + docs/sdks/apikeys/README.mdx | 2 +- docs/sdks/byok/README.mdx | 2 +- docs/sdks/chat/README.mdx | 2 +- docs/sdks/datasets/README.mdx | 2 +- docs/sdks/embeddings/README.mdx | 2 +- docs/sdks/guardrails/README.mdx | 10 +- docs/sdks/models/README.mdx | 4 +- docs/sdks/observability/README.mdx | 6 +- docs/sdks/organization/README.mdx | 2 +- docs/sdks/presets/README.mdx | 8 +- docs/sdks/responses/README.mdx | 2 +- docs/sdks/workspaces/README.mdx | 4 +- pyproject.toml | 2 +- src/openrouter/_version.py | 4 +- src/openrouter/api_keys.py | 4 +- src/openrouter/byok.py | 4 +- src/openrouter/components/__init__.py | 95 +- .../components/additionaltoolsitem.py | 12 +- .../components/advisornestedtool.py | 8 +- src/openrouter/components/agentmessageitem.py | 6 +- .../components/badgatewayresponseerrordata.py | 4 +- .../components/badrequestresponseerrordata.py | 4 +- src/openrouter/components/baseinputs_union.py | 11 +- src/openrouter/components/byokproviderslug.py | 1 + .../components/chatassistantmessage.py | 7 +- src/openrouter/components/chatfunctiontool.py | 4 +- .../components/chatjsonschemaconfig.py | 6 +- src/openrouter/components/chatrequest.py | 6 +- src/openrouter/components/compactionitem.py | 2 +- src/openrouter/components/compoundfilter.py | 6 +- .../components/conflictresponseerrordata.py | 4 +- .../components/contextcompactionitem.py | 2 +- .../createobservabilitydestinationrequest.py | 4 +- src/openrouter/components/debugevent.py | 6 +- src/openrouter/components/easyinputmessage.py | 11 +- .../edgenetworktimeoutresponseerrordata.py | 4 +- .../components/filesearchservertool.py | 6 +- .../components/forbiddenresponseerrordata.py | 4 +- .../components/formatjsonschemaconfig.py | 4 +- .../components/functioncalloutputitem.py | 15 +- src/openrouter/components/fusionplugin.py | 40 +- .../components/fusionservertoolconfig.py | 6 +- .../components/generationcontentdata.py | 4 +- src/openrouter/components/imageconfig.py | 5 +- .../imagegenerationproviderpreferences.py | 515 +- .../imagegenerationservertoolconfig_union.py | 6 +- src/openrouter/components/inputs_union.py | 11 +- .../internalserverresponseerrordata.py | 4 +- .../components/listendpointsresponse.py | 37 +- .../components/localshellcalloutputitem.py | 18 +- src/openrouter/components/mcplisttoolsitem.py | 12 +- src/openrouter/components/mcpservertool.py | 12 +- .../messagesadvisortoolresultblock.py | 6 +- .../components/messagesfallbackparam.py | 4 +- .../components/messagesmessageparam.py | 39 +- .../components/messagesoutputconfig.py | 4 +- src/openrouter/components/messagesrequest.py | 53 +- .../components/namespacefunctiontool.py | 8 +- .../components/notfoundresponseerrordata.py | 4 +- .../openairesponsefunctiontoolcalloutput.py | 16 +- .../components/openresponsesresult.py | 154 +- .../components/outputcomputercallitem.py | 24 +- .../components/outputmemoryservertoolitem.py | 24 +- src/openrouter/components/outputmessage.py | 4 +- .../components/outputmessageitem.py | 4 +- .../payloadtoolargeresponseerrordata.py | 4 +- .../paymentrequiredresponseerrordata.py | 4 +- src/openrouter/components/pipelinestage.py | 4 +- .../components/preferredmaxlatency.py | 6 +- .../components/preferredminthroughput.py | 6 +- .../components/presetdesignatedversion.py | 4 +- src/openrouter/components/providername.py | 3 +- src/openrouter/components/provideroptions.py | 512 +- .../provideroverloadedresponseerrordata.py | 4 +- .../components/providerpreferences.py | 7 +- src/openrouter/components/providerresponse.py | 3 +- src/openrouter/components/publicendpoint.py | 25 +- src/openrouter/components/reasoningconfig.py | 76 - .../requesttimeoutresponseerrordata.py | 4 +- src/openrouter/components/responsesrequest.py | 70 +- src/openrouter/components/routerparams.py | 4 +- .../serviceunavailableresponseerrordata.py | 4 +- src/openrouter/components/shellcallitem.py | 24 +- .../components/shellcalloutputitem.py | 20 +- .../components/subagentnestedtool.py | 8 +- .../components/toolchoiceallowed.py | 6 +- .../toomanyrequestsresponseerrordata.py | 4 +- src/openrouter/components/traceconfig.py | 4 +- .../unauthorizedresponseerrordata.py | 4 +- .../unprocessableentityresponseerrordata.py | 4 +- .../updateobservabilitydestinationrequest.py | 4 +- src/openrouter/components/usage.py | 166 - .../components/videogenerationrequest.py | 512 +- src/openrouter/datasets.py | 4 +- src/openrouter/embeddings.py | 4 +- .../errors/badgatewayresponse_error.py | 4 +- .../errors/badrequestresponse_error.py | 4 +- .../errors/conflictresponse_error.py | 4 +- .../edgenetworktimeoutresponse_error.py | 4 +- .../errors/forbiddenresponse_error.py | 4 +- .../errors/internalserverresponse_error.py | 4 +- .../errors/notfoundresponse_error.py | 4 +- .../errors/payloadtoolargeresponse_error.py | 4 +- .../errors/paymentrequiredresponse_error.py | 4 +- .../provideroverloadedresponse_error.py | 4 +- .../errors/requesttimeoutresponse_error.py | 4 +- .../serviceunavailableresponse_error.py | 4 +- .../errors/toomanyrequestsresponse_error.py | 4 +- .../errors/unauthorizedresponse_error.py | 4 +- .../unprocessableentityresponse_error.py | 4 +- src/openrouter/guardrails.py | 20 +- src/openrouter/models_.py | 8 +- src/openrouter/observability.py | 22 +- src/openrouter/operations/getapprankings.py | 23 +- src/openrouter/operations/getmodels.py | 5 +- src/openrouter/operations/list.py | 17 +- src/openrouter/operations/listbyokkeys.py | 24 +- .../operations/listembeddingsmodels.py | 17 +- .../operations/listguardrailkeyassignments.py | 17 +- .../listguardrailmemberassignments.py | 17 +- src/openrouter/operations/listguardrails.py | 17 +- .../operations/listkeyassignments.py | 17 +- .../operations/listmemberassignments.py | 17 +- src/openrouter/operations/listmodelsuser.py | 17 +- .../listobservabilitydestinations.py | 17 +- .../operations/listorganizationmembers.py | 23 +- src/openrouter/operations/listpresets.py | 17 +- .../operations/listpresetversions.py | 17 +- .../operations/listworkspacemembers.py | 17 +- src/openrouter/operations/listworkspaces.py | 17 +- src/openrouter/organization.py | 4 +- src/openrouter/presets.py | 12 +- src/openrouter/responses.py | 16 +- src/openrouter/workspaces.py | 8 +- uv.lock | 2 +- 288 files changed, 20893 insertions(+), 21129 deletions(-) create mode 100644 docs/components/additionaltoolsitemtooltype.mdx delete mode 100644 docs/components/additionaltoolsitemtypefunction.mdx delete mode 100644 docs/components/caching.mdx delete mode 100644 docs/components/functioncalloutputitemstatus.mdx delete mode 100644 docs/components/localshellcalloutputitemstatus.mdx delete mode 100644 docs/components/openairesponsefunctiontoolcalloutputstatus.mdx create mode 100644 docs/components/parameters1.mdx create mode 100644 docs/components/parameters2.mdx create mode 100644 docs/components/parameters3.mdx delete mode 100644 docs/components/publicendpointquantization.mdx delete mode 100644 docs/components/shellcallitemstatus.mdx delete mode 100644 docs/components/shellcalloutputitemstatus.mdx delete mode 100644 docs/components/tokenizer.mdx delete mode 100644 docs/components/tooltypeephemeral.mdx delete mode 100644 src/openrouter/components/reasoningconfig.py delete mode 100644 src/openrouter/components/usage.py diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index b10d029c..f75619bf 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,19 +1,19 @@ lockVersion: 2.0.0 id: c48cf606-fb42-4a45-9c23-8f0555307828 management: - docChecksum: 32d135cd4ce625805399acac0f046070 + docChecksum: e7a20e65c63d39b2c9e86629b75b1c0f docVersion: 1.0.0 speakeasyVersion: 1.787.0 generationVersion: 2.914.0 - releaseVersion: 0.11.38 - configChecksum: 5a6184e4ed756a5c6728919ce290099b + releaseVersion: 0.11.39 + configChecksum: 6d000e7a5fcb167e73aec7c44eff962a repoURL: https://github.com/OpenRouterTeam/python-sdk.git installationURL: https://github.com/OpenRouterTeam/python-sdk.git published: true persistentEdits: - generation_id: 64bb4cc8-4fc4-4a71-a60f-e1550e34fb25 - pristine_commit_hash: 593ad1dfde8720bd8f2a29ce7b31d49d3a30fc48 - pristine_tree_hash: dad291f5e1dc32399986750d4f15ab9feaf27437 + generation_id: 31657d12-a4c4-4629-9686-93d38f7a08b3 + pristine_commit_hash: 7ab9ffc7b4ce13ca2ae7796dccf6ea17ac767132 + pristine_tree_hash: 308ff6011f58aff4b39b0a575c9dcc3cfce0fcf9 features: python: acceptHeaders: 3.0.0 @@ -118,24 +118,24 @@ trackedFiles: pristine_git_object: 2e7f805c00b56bbd6872d986beb5fa76cb0a6c28 docs/components/additionaltoolsitemtool.mdx: id: 075b8c61fc35 - last_write_checksum: sha1:e038792f2a5d489bc1994d81d6df101d376c53e8 - pristine_git_object: 9dcea23673cc79bb60efaf0b84299aa4b916e3ca + last_write_checksum: sha1:f43dff64751ab296d0a156cf8728315421a03dc5 + pristine_git_object: 129b2fdfb6379bb7c755bc13f0d92da88bac1eaf docs/components/additionaltoolsitemtoolfunction.mdx: id: b8c1e4fcad3b - last_write_checksum: sha1:fd16181ea1f609dfcb8cc4bdc566011d2041faee - pristine_git_object: d78714317e328d9131e563de7807db0761bb3da1 + last_write_checksum: sha1:c65fd2849b323fa3e0917a9b7e10929df6d998b5 + pristine_git_object: c4c0bf16f0604b95990d3d327d00fe7c6c6a625c + docs/components/additionaltoolsitemtooltype.mdx: + id: 15c11e47b2fb + last_write_checksum: sha1:8d8cf453178adbb327348a2c504356653eb2abbb + pristine_git_object: ef321af2412bd7aee72744d98c4b9a59463094eb docs/components/additionaltoolsitemtoolunion.mdx: id: b3e8598b1887 last_write_checksum: sha1:989ba14acb7cb2d5fb09fd46427781890a63aac8 pristine_git_object: 137fc3f93d3e840ceb1bf0081a5ac9feaf098c1e - docs/components/additionaltoolsitemtypefunction.mdx: - id: bf179b4008af - last_write_checksum: sha1:c0d4fee7d39fbd3d08c44bbe0e7b929350c5d7e8 - pristine_git_object: 00ce08abaaf149eb1713cc084e87a8b1efc8df81 docs/components/advisornestedtool.mdx: id: 71464b7dde39 - last_write_checksum: sha1:85f6613d57b23cb14b06e5bd9ee717dd7a0076cb - pristine_git_object: ef547673c81dad35eef331883e7b06c16f28a76a + last_write_checksum: sha1:89d7a7836c487fe84756f39b306bbfca59b1ca6c + pristine_git_object: 81964e19bd13c14a67371b972b99926dc712b11d docs/components/advisorreasoning.mdx: id: c4f80ddfbd1b last_write_checksum: sha1:9e16412ad2176b95e0c995efeb0850318ec58d37 @@ -158,12 +158,12 @@ trackedFiles: pristine_git_object: 95bf97c81f4b519b1abf0b8ef96d5344140ac182 docs/components/agent.mdx: id: a9ece83c3330 - last_write_checksum: sha1:6aa5ec348e98fe755fa241b09b94e9316f130a5a - pristine_git_object: d0300461c7036764ce02b5ad12748485406a018f + last_write_checksum: sha1:4a9d93af6313b5a6163cf807b0ce4baac23a7662 + pristine_git_object: 198da9e838d5ee99e6cbff31f6a3aa55f35372fa docs/components/agentmessageitem.mdx: id: 207b0f2bd32f - last_write_checksum: sha1:11acb80bcbb86196a5fa991843bce2ffa8ce1f88 - pristine_git_object: f50b6f364c0b9deddd755f43d68af8f032bc8298 + last_write_checksum: sha1:dd03105f93df0f50a9cb0888ede258ad7b9cda59 + pristine_git_object: 6c75e26dd968ce8860e334fffec9543f851e7a11 docs/components/agentmessageitemcontentinputimage.mdx: id: a491c3154b29 last_write_checksum: sha1:ae00600fdb044ef6055b821ea9e1c6ed1984059e @@ -190,8 +190,8 @@ trackedFiles: pristine_git_object: 14377fe6a97ef654eb28836afc9d8923350e9d88 docs/components/allowedtoolsunion.mdx: id: 6fbdaf871602 - last_write_checksum: sha1:821681b0933436cb8ef4cac8070296a3469b1b02 - pristine_git_object: 239bb4825ee58ed57edd87e8f2ec886268433483 + last_write_checksum: sha1:5e543643f09cac14ae063be8eb46edf0b55de379 + pristine_git_object: 4e6d37a0b4d8eae7d3ad32bb5b268ec5274ecf9f docs/components/always.mdx: id: 349d3a763e1d last_write_checksum: sha1:1e1169e637c785565ecf0646c29f812b9c6b3551 @@ -586,8 +586,8 @@ trackedFiles: pristine_git_object: 06ea87da92af18eb4cef9c2ea501ff57045e121f docs/components/architecture.mdx: id: 2092a26b770f - last_write_checksum: sha1:8f179b922fce777d3229ca524750ddaabe02fc91 - pristine_git_object: 277a0da557d67e40f91a9a2bb0fd318f5bf9f9bf + last_write_checksum: sha1:24138ca8d82a454360a8a7cfc058bc00dc14d4c3 + pristine_git_object: 1c451e3fe0473f1e3d1da6f19125b9e6869e2d33 docs/components/audiourl.mdx: id: c457db82a4ac last_write_checksum: sha1:eda63702a1bab370efe326a661950ea0b864169e @@ -602,12 +602,12 @@ trackedFiles: pristine_git_object: b3395732b1e9de51a13d9c4952c1876f6c9827b2 docs/components/badgatewayresponseerrordata.mdx: id: c7d6d22234b0 - last_write_checksum: sha1:4aef24007fd61cc6e64dc2f67030f1ce28a6a258 - pristine_git_object: df2de9f107779203990c42a3335c0e61e98af3bf + last_write_checksum: sha1:e1dedf09c3a331ee9817cba70b8047a834448d96 + pristine_git_object: 2a37f68087aea87e37d0a0a90e865fbdc7d2475b docs/components/badrequestresponseerrordata.mdx: id: "143714074251" - last_write_checksum: sha1:6d1d4489e3f58e8ca88dc3c0262f52a9e303e4df - pristine_git_object: 3afce5ccf17f7bf1112513a9e186a2b44fae6d3b + last_write_checksum: sha1:93a3f6213ecf77d01793d1edb932051d6b172f28 + pristine_git_object: 3fa8d950837b05f5c588ef405817fbde8796c92f docs/components/baseinputscontent1.mdx: id: 67873741fab6 last_write_checksum: sha1:35d42d9c20a3f2c2f48f7e51624680052802fbd6 @@ -630,8 +630,8 @@ trackedFiles: pristine_git_object: 0ff0427fc96c7640817e5130d195796f20b05685 docs/components/baseinputsphaseunion.mdx: id: 0a2128c06411 - last_write_checksum: sha1:5dae76acbeec0a8a1613f48f98ee8e7ef7fdf1fc - pristine_git_object: 5a0578435dcfff203e6f8be5e869bda7dc018db2 + last_write_checksum: sha1:121cbff696408f2ad8d68d4b1d79b06b4fac20ff + pristine_git_object: 1f5e55e6ef2bd4972f1032d32068ab1e45558ec5 docs/components/baseinputsroleassistant.mdx: id: 0db596de2098 last_write_checksum: sha1:3bbbc88af5eb3853264c6b472348eb6385d67cf3 @@ -658,8 +658,8 @@ trackedFiles: pristine_git_object: 6bb25bd0a4211020cb14661b95fae6ca5366677c docs/components/baseinputsunion.mdx: id: 4a9f9aa3a775 - last_write_checksum: sha1:176bf9b20015a91650a825f9c10b7384637e678f - pristine_git_object: e006bcc0c1b5c3cef08302490ace5418a3489eb2 + last_write_checksum: sha1:9b9ac60bef28c4033c10b1712d25eb55dcc1da69 + pristine_git_object: c9fc016d2f4a53df11ab92f6cdeb4a7f0c82165c docs/components/baseinputsunion1.mdx: id: cff794940c38 last_write_checksum: sha1:8e14c3c03333ce594563b02552753215b4f93e84 @@ -758,12 +758,8 @@ trackedFiles: pristine_git_object: 151dd8398dc818ff4d26d6859d25efd202d03917 docs/components/byokproviderslug.mdx: id: 6ea70819f6d8 - last_write_checksum: sha1:ebaa58339b1aa659ea4f96b28f887144bc4a594a - pristine_git_object: b56fc996c47cbfc157ab497a9d65e9d73e358dfa - docs/components/caching.mdx: - id: edc8a0f8f37f - last_write_checksum: sha1:cce3835ca76b640b591de1307422aa4e391cde69 - pristine_git_object: 0d7013f54bed0390239fa49074a48d5b21711a28 + last_write_checksum: sha1:6d22db8a9d83df36a6305e30e6885d0deabb0a39 + pristine_git_object: 4dbc4cec5e6acb4f1598a9656ec80e6cfa40e191 docs/components/capabilitydescriptor.mdx: id: 34ac0e581d79 last_write_checksum: sha1:62ee9ccab6cec4572383cef654997ab4106d4676 @@ -782,12 +778,12 @@ trackedFiles: pristine_git_object: 8a36279a112a3f8efc1ee770cb250e510674e7e5 docs/components/chatassistantmessage.mdx: id: 8ba2a16f77d2 - last_write_checksum: sha1:adc7e210e87fe8dad751970b4c459e07818b02b0 - pristine_git_object: e2b637c750983fd50b89f4a305a982a4e77c7d6e + last_write_checksum: sha1:b77cff879f1f2fbbfb655556591dff5578ff778e + pristine_git_object: 1d774a92a1698348702b45b07f228fc1cdb3641c docs/components/chatassistantmessagecontent.mdx: id: ab4dd265daa1 - last_write_checksum: sha1:911775e0061c32e7b6501c25a783c743090129d3 - pristine_git_object: c335554a976734059173a256e2e07c59f638ee23 + last_write_checksum: sha1:9eb82372c50a133da9827ba8251a7a201027a4bc + pristine_git_object: 17e052dc959b54b48f73be578d8646d2623d3a1b docs/components/chatassistantmessagerole.mdx: id: 6b3ba6abcc49 last_write_checksum: sha1:5129b49f15061be42bf604476a8e1fdc972faf0d @@ -938,16 +934,16 @@ trackedFiles: pristine_git_object: a6cf73c17fd5cf6752d09f7eb25a13fb8d9d4a02 docs/components/chatfunctiontoolfunctionfunction.mdx: id: 59c7a37a65c9 - last_write_checksum: sha1:671313b618e2e45e37f94494b8bd88822aa4220a - pristine_git_object: e4a50d554a3b23d06c5f2f6e0ec6ee7202d48ab7 + last_write_checksum: sha1:f8fa8758802900890f54c4f808cb2472e5c10ba5 + pristine_git_object: ba11d00767890aee3765ac619b2da2bcb1d9a4b6 docs/components/chatfunctiontooltype.mdx: id: 6b715d511146 last_write_checksum: sha1:052e19c72306c62984069c9546a4bf8b886984da pristine_git_object: 97fa5f43749ab221d87fa37b3b86d1492da4cbec docs/components/chatjsonschemaconfig.mdx: id: a5484dbdf56d - last_write_checksum: sha1:e6d1980a8fd64f9b6c6c6e5a69f5a9d93d1cb745 - pristine_git_object: 9d355f0ac86084432f766c087f2cf4bd610e62b6 + last_write_checksum: sha1:b001ffd26463abbb78039b4793252b6fc2e07011 + pristine_git_object: 08887f52065c37449b558e49d22472bf9aef1eb1 docs/components/chatmessages.mdx: id: 8d256772dcb9 last_write_checksum: sha1:695f1bf1bb3ac6df1147ce1a2c83474257d4b528 @@ -970,8 +966,8 @@ trackedFiles: pristine_git_object: 220be03bd674a257c2064c0455104959b3974a35 docs/components/chatrequest.mdx: id: 055812be14d8 - last_write_checksum: sha1:89b2b49f33aad8f2c1da1625000b0d6f8b149007 - pristine_git_object: 73293a5570f6550c42c332306d52777134732285 + last_write_checksum: sha1:f813c053406db6363b3919c1a705271d18dbe4dd + pristine_git_object: 1422a77fce1fc7b1182829ae56b91b949008d549 docs/components/chatrequesteffort.mdx: id: 703c73252ebd last_write_checksum: sha1:243510f188071a3f317dc06a07fbcfcedd3cf821 @@ -1034,8 +1030,8 @@ trackedFiles: pristine_git_object: e07fc2435544618a76a5441f1f9e2e145947a864 docs/components/chatstreamdelta.mdx: id: 188dfce87802 - last_write_checksum: sha1:507a45ac53e78c5a09d48fce151063c7fad2de1f - pristine_git_object: ca45ea3ce93365b817f4ca368d61d4b8b77d3080 + last_write_checksum: sha1:607e78ec05adb90b37a7a7e9601d89eefb600145 + pristine_git_object: 3ac2bd92b2b9f3bac39ebd6a76ad2801aa134ba1 docs/components/chatstreamdeltarole.mdx: id: 6b8c4f06d157 last_write_checksum: sha1:e8c45d5a04b527f5ab6bf30f1305ca1b7605cd61 @@ -1162,8 +1158,8 @@ trackedFiles: pristine_git_object: 262286806c125e7b4e306e43f29f964459157382 docs/components/cleartoolinputs.mdx: id: 4e474b90f4b7 - last_write_checksum: sha1:2574803d7adf914b3f90850fbaea1af2cf6eaed5 - pristine_git_object: d5682fcb62d709606d7e073a9447621cc6da7a68 + last_write_checksum: sha1:383680c2c4a38d12044cbec51ba60afa28191e27 + pristine_git_object: db3b60d9a6c046173b1cadf19eab51f3f3c1e11e docs/components/code.mdx: id: 1cc125f1dfa9 last_write_checksum: sha1:322ba712be712d52ddd41577792f1d4ec2012c9c @@ -1186,16 +1182,16 @@ trackedFiles: pristine_git_object: 8a2adc33e4a201f48cc802d12dd0154dfa674aa9 docs/components/compactionitem.mdx: id: 26c52557072b - last_write_checksum: sha1:f8c0deb4eb10c507ec77d2be7669a96bb81c2a1b - pristine_git_object: 52161ac34082b508dbc5da7e8ec8a380ab813c99 + last_write_checksum: sha1:1a0c6a59ae335bce25df0ecc63d84653642f4504 + pristine_git_object: 313c76b104477cea28989790ba1c7f495ece6064 docs/components/compactionitemtype.mdx: id: 688981b39855 last_write_checksum: sha1:70bb56c5e1b6352f709a63c98103e99c379fc86c pristine_git_object: 335f2a6ac2acfb1afb7523e7e12970b8e8b2e0c4 docs/components/compoundfilter.mdx: id: 346617a04c59 - last_write_checksum: sha1:dd66c088cb5d39ba87db9afae711eaaf7f809479 - pristine_git_object: 6c3f524e199707154988ce99b87571208f3fe488 + last_write_checksum: sha1:591f006822263454bd0123a2454608585eb30bd8 + pristine_git_object: 31f3a063147a5cce65858d07ff5545f085708651 docs/components/compoundfiltertype.mdx: id: 68e76416ad08 last_write_checksum: sha1:036009180583ea8f72bb76671566ec4d5d2e4162 @@ -1210,8 +1206,8 @@ trackedFiles: pristine_git_object: 37199a7b510c1e9fcb61566fb1ca2dc3d6a5428b docs/components/conflictresponseerrordata.mdx: id: 2d7c53cec517 - last_write_checksum: sha1:6e51b6140225812c676e85b0524bff270269c534 - pristine_git_object: a48176a70b127e973cde593c8a4169b9ac6e6d31 + last_write_checksum: sha1:dd91c373cd9586abfeef758340e08425b0c15878 + pristine_git_object: 6216c38344e2790fa545b8b95b2ce6fa2f650733 docs/components/connectorid.mdx: id: e2bb5ba7cffa last_write_checksum: sha1:38d7e2bf323f4e87c0f8283a0a998698a605380d @@ -1250,8 +1246,8 @@ trackedFiles: pristine_git_object: 87f9c8d7936595373ebeae59a265705db8df2721 docs/components/contentencryptedcontent.mdx: id: 0dc55809c394 - last_write_checksum: sha1:97675b67fb3cdb6c892bbe01d2cd9e6bab5e4dec - pristine_git_object: f6d3a51c9fa32b15dd589583fd07b835f76f0ecc + last_write_checksum: sha1:4ade3f8974c39af89b3dde5c847d7f397e7c66ad + pristine_git_object: 450638f0c28d1a9097b687476fe5ccaa554ed8c4 docs/components/contentfilteraction.mdx: id: 11728ebb9679 last_write_checksum: sha1:c2e70a8136e1af5a9a0e2abd930e5cd3bdb880a1 @@ -1358,8 +1354,8 @@ trackedFiles: pristine_git_object: f9c4eeefa07fcc73839934dd6b3d403fe7539da3 docs/components/contentservertooluse.mdx: id: 7b676db3a465 - last_write_checksum: sha1:b49ee690460e4de02996066b31e91bb1f4eb8400 - pristine_git_object: 86c112ede3a14c30546d1fb00f6526a5f854ced0 + last_write_checksum: sha1:2d484e7b41f75605a15c9c438ca6da4e9571b131 + pristine_git_object: 7f97379bb48a31d94534294d5b9eaa0cc50dd7f1 docs/components/contentthinking.mdx: id: c23024acf25a last_write_checksum: sha1:f3a989b8eb7a38f2705324263796f49a7e1722b6 @@ -1374,8 +1370,8 @@ trackedFiles: pristine_git_object: f83588a9c24d3172b8f8fd131cdc5aea073d0088 docs/components/contenttooluse.mdx: id: ad7fb52d642b - last_write_checksum: sha1:96dda7c7f895597f5f60c57b69936f77e14fc8ff - pristine_git_object: 7149ea56376799b7d485254b63acdda00e9713a4 + last_write_checksum: sha1:904efa673308a420ec0922071619a8dedb4b4fb4 + pristine_git_object: 0f54e811562c5249aa51b8fd6416a7e7029af0a0 docs/components/contentwebsearchtoolresult.mdx: id: d2401cf2f6b9 last_write_checksum: sha1:d7ecfe7df3b1e89151edb59cd1525aab997b28b6 @@ -1386,8 +1382,8 @@ trackedFiles: pristine_git_object: c944724a99b7f7d4a9b5de4dc478f1e15643e20a docs/components/contextcompactionitem.mdx: id: 4e12480f54d6 - last_write_checksum: sha1:b3491d872cda856a3c9e338cf9121af0e68f1be0 - pristine_git_object: 4410f499ce362b79b38a3ea450e03913cfafc984 + last_write_checksum: sha1:3269c5e4d1ff0396f597d27fb4e641f3489584bf + pristine_git_object: 369dd320ca18024eef05a6c6756a78ce72843c7f docs/components/contextcompactionitemtype.mdx: id: 393257938ed7 last_write_checksum: sha1:28b03a5e14d3ab558cd6379fa25a4481e05e3016 @@ -1434,8 +1430,8 @@ trackedFiles: pristine_git_object: b7e89dc116e820a8748af87b83e66f2706ec5599 docs/components/createobservabilitydestinationrequest.mdx: id: 8d942a601a6e - last_write_checksum: sha1:968666d16e4c3b3249f7e533829d510c5c043179 - pristine_git_object: 065e043f3ea11140659cba056f490b634d435e62 + last_write_checksum: sha1:4d6fe2dc5cc05405ccfeb84ccc0f63d412316852 + pristine_git_object: abe93cf002d475bdeb063b5b597a490f5f91e7c8 docs/components/createobservabilitydestinationrequesttype.mdx: id: 0cb269425077 last_write_checksum: sha1:f8608dbed4fcc4407be03f34d5a5ab50c5cd085e @@ -1542,8 +1538,8 @@ trackedFiles: pristine_git_object: 23b3fdfc750fcb578ab751f7726f5fa8ba854b80 docs/components/debug.mdx: id: e3700a58e527 - last_write_checksum: sha1:a7899e5645dc429606bdb622581c4a2f6fad61ad - pristine_git_object: 5aff6df42e4d37cb363d64e5b854d64843d761e0 + last_write_checksum: sha1:c007eab589acb20b9bbc9f678fa16ba371a6aa14 + pristine_git_object: 15d4e2379683fafc7439117de2f4a72a747b09aa docs/components/debugevent.mdx: id: 6ca5a59f1fa4 last_write_checksum: sha1:a70e1632f9ce13d2829e41fb60b75dec7ca2043f @@ -1594,8 +1590,8 @@ trackedFiles: pristine_git_object: b650861b74772c18a502c327b5dff2c2313c6402 docs/components/easyinputmessagecontentunion2.mdx: id: 09220b3ecbc3 - last_write_checksum: sha1:da94562d574e94aef7f867c727e4b5bfc6289f6b - pristine_git_object: 02c13eb50df50e79ab55dfe849134e9d3a54b260 + last_write_checksum: sha1:96bb4d2d016341d01a3ccda1942c05d0be160748 + pristine_git_object: 7371134048ae9ca129aa6e86b7b0b0b6ce984b32 docs/components/easyinputmessagedetail.mdx: id: 90d600df4441 last_write_checksum: sha1:f14122e0f3fac97cd0912731ab2050b931af36bb @@ -1610,8 +1606,8 @@ trackedFiles: pristine_git_object: 4c9f6073f10a6884afc98101ee398df33fa00fef docs/components/easyinputmessagephaseunion.mdx: id: 1b6ac9af1803 - last_write_checksum: sha1:32c40092a97e059a7f519d5e575ed3dceb4d0f89 - pristine_git_object: 6f56b1adcf81b84d88df0432d096eb479789ac87 + last_write_checksum: sha1:ac2c86aabc1bb1fe42194bd691acf3a674f6ed49 + pristine_git_object: ac45ef0cb9b012f9daba394105849ea15b67b4a5 docs/components/easyinputmessageroleassistant.mdx: id: cad68aa52f41 last_write_checksum: sha1:4df19f7b18540801bef2f5a5ad355d80e4326c15 @@ -1642,8 +1638,8 @@ trackedFiles: pristine_git_object: aca189151b5ad31a7d600b2a2e30be006ed649d6 docs/components/edgenetworktimeoutresponseerrordata.mdx: id: 31b2d23325c4 - last_write_checksum: sha1:d8d52abbcdd092079d0af840deff1b72b22c3228 - pristine_git_object: 66b365f4cf76c649c5c98072d1550d79c885335b + last_write_checksum: sha1:d57ae48b276680f6d5ca282f2b66c0c197da85fe + pristine_git_object: e0fedd8b53b55b2ad5d1bfd60e481d88315590b7 docs/components/edit.mdx: id: beb780c4a3d4 last_write_checksum: sha1:1ec0390664caa39f049254733104bb18ca11a712 @@ -1794,12 +1790,12 @@ trackedFiles: pristine_git_object: 172ba4b91998fdb10fafcdab1a6d2ae0ec8a1f20 docs/components/filtersunion.mdx: id: dd890414ed4e - last_write_checksum: sha1:926caaafa4e689537dd7800767f0449d4c19d7a2 - pristine_git_object: 263dda89b5a2dd3bc1a409fd4530c613adadb169 + last_write_checksum: sha1:9b6b6a4d23d49575240609517d4d2751645220c2 + pristine_git_object: 89d1920451399329c5059da274654c41633e53fe docs/components/forbiddenresponseerrordata.mdx: id: "760721125246" - last_write_checksum: sha1:3abc15cf5c47ac6d2dacd679f19ab8c1fa563c9d - pristine_git_object: 6876df07cc049ac7216134da25218080135d6cf2 + last_write_checksum: sha1:0fe4b361de356d50554272941fd52c8c256ce2a0 + pristine_git_object: cdc5cd4c32ae93c9b1cf5df44e5c18f42073ce95 docs/components/format_.mdx: id: 0282154286c4 last_write_checksum: sha1:4f930bce8f946d3995606f06c63421b0378f7b1a @@ -1822,8 +1818,8 @@ trackedFiles: pristine_git_object: 54307d61ebda1db4d9ffd7aae74d6a9d18ad27f5 docs/components/formatjsonschemaconfig.mdx: id: 14f44a8b7add - last_write_checksum: sha1:6d80c68eca8da41172f9bfe8470e088662e1c184 - pristine_git_object: 12224f310fd12056567710d43dee83a7fabf0cd8 + last_write_checksum: sha1:e7f8a3af2fe93787522c7ed7b1622c24b80bb085 + pristine_git_object: 0ddb8ed41e9ca1454f76cdacd655edc46210e6a8 docs/components/formatjsonschemaconfigtype.mdx: id: 440019abbcee last_write_checksum: sha1:4fa1c94297eec8b9f6395f3bc7db844f63eec222 @@ -1894,8 +1890,8 @@ trackedFiles: pristine_git_object: ebe7c4534ae98d6bad16be51ae67f3d7b68a6de3 docs/components/functioncalloutputitem.mdx: id: 046aa205440e - last_write_checksum: sha1:c7c60e48e384e8b45827f80325ea71b3f8563263 - pristine_git_object: f48aaeabf846bf1480225074595f61d6fd77df1a + last_write_checksum: sha1:0ca45d1fbbee7137c2a15305a60dddf3677382a2 + pristine_git_object: f0bca51ca12edd9d4c71bcac7db27a03ee425dd1 docs/components/functioncalloutputitemdetail.mdx: id: 5f3a3e7a265e last_write_checksum: sha1:173f1dabec2c3aaf8bebe06cf63e27a568d5f0f1 @@ -1912,10 +1908,6 @@ trackedFiles: id: c4953b99bca2 last_write_checksum: sha1:69f8715f2b8d305759dfc75f7e56c247b9e25e26 pristine_git_object: 92b4c4cca1f9a587654cfff97c93f6c66f99fa6c - docs/components/functioncalloutputitemstatus.mdx: - id: 2649c00d0618 - last_write_checksum: sha1:781a211478e77770e68be20fbaf9c5f26f0cac9d - pristine_git_object: 870e40ce63b742d63581c686f04900b3cc1e1703 docs/components/functioncalloutputitemtypefunctioncalloutput.mdx: id: a1c1ac8a378a last_write_checksum: sha1:766416f347f68a55e2b4ef1c3861add60157c0ff @@ -2010,8 +2002,8 @@ trackedFiles: pristine_git_object: 07ef9cfd59a0aedd18e5f1a0206c65f471ceb29d docs/components/fusionplugintool.mdx: id: 075d6029e74b - last_write_checksum: sha1:bcfdb9296fa9f3d97a496df70d45b12129f15ed7 - pristine_git_object: 3c29bc4bd3bdf7037b9c3aa894180b8e4cae6098 + last_write_checksum: sha1:7c90f7d27a9e0d895c78ff3fed88981cce5fff22 + pristine_git_object: 967c0e2abcf18d52589d674bdf45d0414050b71f docs/components/fusionservertoolconfig.mdx: id: 87976811b0c3 last_write_checksum: sha1:267106d40b0f8e9a7601945753f7934b34084183 @@ -2026,8 +2018,8 @@ trackedFiles: pristine_git_object: af7105baa0ce972bfccbae84a2ec91ae50ae6333 docs/components/fusionservertoolconfigtool.mdx: id: cb4b076ea8f1 - last_write_checksum: sha1:41f637f2abe226ae7db2206ba3656c64815efad7 - pristine_git_object: ec79aaa4c0af8b3ee59c5b786f3c9ea88c5e7502 + last_write_checksum: sha1:ce722d9d42cb5709d45aeb7566ab510ecc185cd3 + pristine_git_object: 486dbbd1c8e0033396fa9702034d52dc07ccdd23 docs/components/fusionservertoolopenrouter.mdx: id: e90614058484 last_write_checksum: sha1:ca700c405e7a9cb2d5f10932cd1413b0192c8527 @@ -2094,8 +2086,8 @@ trackedFiles: pristine_git_object: 9e0a058e6a19b68f470eb0938670dff51b47f4b5 docs/components/imageconfig.mdx: id: 455a9f530ea8 - last_write_checksum: sha1:3ec5e8ac11e823479e41115da31aae29d2a1cbd3 - pristine_git_object: c838dbe65d84a9674c7afbf0f7be2d311a255733 + last_write_checksum: sha1:b163b8b8e90a6011cc0d64a26febb459045f6019 + pristine_git_object: a470ef90ddcfdf10de7f040ffc8aee37d634306d docs/components/imageendpoint.mdx: id: d7d1514fbcd6 last_write_checksum: sha1:4219b8a98eb20856cd545f891757ae12d1d52807 @@ -2154,16 +2146,16 @@ trackedFiles: pristine_git_object: 11f1471c8b6c04f52af89d74d6dec2e9d12c2d82 docs/components/imagegenerationproviderpreferencesoptions.mdx: id: 32d5c4b3e06b - last_write_checksum: sha1:d434e5d8c335b97bf9b1b5c98bd5bd999ae51e1a - pristine_git_object: 89318cbaad3e6e6c28b53f392e33aa0ad6bbeee3 + last_write_checksum: sha1:7b4de8e17d7a0e408b1707e625e97a1da8232646 + pristine_git_object: a5a0f4721f73ca92c2822f23320b60c2ad8aa6b1 docs/components/imagegenerationproviderpreferencesorder.mdx: id: 0547877073f3 last_write_checksum: sha1:3e890c691097373cc9a2d7e47c3594f56b57809c pristine_git_object: 3125f8b2ec3ee98a992c7397978917d47e1043cd docs/components/imagegenerationproviderpreferencessort.mdx: id: ce43ddb42deb - last_write_checksum: sha1:acd4609eea738b06a6252ee2ea0a4621eeaad2bd - pristine_git_object: 7696bf5f4a2c4a1f05e148513b70fe96b2f948a8 + last_write_checksum: sha1:45987d9a89771bbf945d1be5f0d4b9b34d4f6d43 + pristine_git_object: bccd158982dba4b4ed810b98b5f7d4a6c04afaa7 docs/components/imagegenerationrequest.mdx: id: b093cb0f5e81 last_write_checksum: sha1:1bccab895149605ba994e84b202c1f7b50c6ccb2 @@ -2210,8 +2202,8 @@ trackedFiles: pristine_git_object: 3fc78f9b04fd2624804c6c0f2f13393d72a4130d docs/components/imagegenerationservertoolconfigunion.mdx: id: 9c9b67c84754 - last_write_checksum: sha1:dc2781e674923e113c2e73fab18686e8495e1d61 - pristine_git_object: a3b6a156a4bb01df6a3ddb4710504d2428ca0888 + last_write_checksum: sha1:fe7cb74c64e24ae90fd2bb0b25448611bc091139 + pristine_git_object: 42cf7a758734065b3323fa848eac7daf4991e5f0 docs/components/imagegenerationservertoolopenrouter.mdx: id: 589f9a433e7e last_write_checksum: sha1:eca7b04fe2d9d7fd52a630a74780962cfd16997c @@ -2326,8 +2318,8 @@ trackedFiles: pristine_git_object: 43245bc1076bf43c18fab7c40cd27b05ed837d9e docs/components/input2.mdx: id: 09d21fcac31d - last_write_checksum: sha1:d19fb7762524ff6849f39b1cb270a917910b1e70 - pristine_git_object: 5dc5ade73a81471f6af86d4b5e460b05675e175b + last_write_checksum: sha1:36a063ed2cb7d90f9e9d77f6475f2d239d051440 + pristine_git_object: 8ff9ce181d38d00dec1ab9348009012722945600 docs/components/inputaudio.mdx: id: b82595fd87c1 last_write_checksum: sha1:625e374c14ab462de002dd76049c568de4449910 @@ -2418,16 +2410,16 @@ trackedFiles: pristine_git_object: 8332cd08018255c15d027281c9c6996df5e08b80 docs/components/inputschema.mdx: id: 4cd0b1f16cc2 - last_write_checksum: sha1:c71a5e5f6eea8441960e87e4f94c460757622b9a - pristine_git_object: 0adafb654189b45c31afe6f9f924f94a2649bb6d + last_write_checksum: sha1:da628a51d79cd1b5e9caf6a29eaaa22a4ca18b26 + pristine_git_object: c86a4f23db78b4ee88356a509cc85ab9bd836c03 docs/components/inputscontent1.mdx: id: 4d067cae8934 last_write_checksum: sha1:63fc75a1cd64347bbd378217fca9d0f6f760aba3 pristine_git_object: 99897ec8c711b6137748752885004a9e4256e6d1 docs/components/inputscontent2.mdx: id: 5513e35476b2 - last_write_checksum: sha1:8d160b5993bc22233500428ef257a496557a3e8e - pristine_git_object: 2cfb9792fcba74c7d8baccebb3751ffac9c88ba1 + last_write_checksum: sha1:3942ee3332cdbb2ad9f45b41e2a14706563a864e + pristine_git_object: ec384a2cd15b4af761c84955f7da3b98d2427564 docs/components/inputsmessage.mdx: id: 8187d4987ebd last_write_checksum: sha1:cb5e14bd64190feae73408111aa97509c339da0b @@ -2442,8 +2434,8 @@ trackedFiles: pristine_git_object: 6dc3c8e07fe4b9849cec18a1ad7f54f7b9d0f374 docs/components/inputsphaseunion.mdx: id: 61e40e9bc963 - last_write_checksum: sha1:c210807ab5a55a80d7f7e4c97a29e96a059e2ddb - pristine_git_object: cad0670099b36ac101d02c0370b0f3407fca26a0 + last_write_checksum: sha1:dcfae843505f9d7ddbe5bd56207a26b2094abb37 + pristine_git_object: ed5a1eb606cff079f176ee4d94ca1d600e4ca184 docs/components/inputsreasoning.mdx: id: 4d87fe5d05cd last_write_checksum: sha1:fa74176f24f50aba66bf707549a7c803e918f4b4 @@ -2530,8 +2522,8 @@ trackedFiles: pristine_git_object: e3e71d16be9294f68ca671f76dbcc8b6d8ecc749 docs/components/internalserverresponseerrordata.mdx: id: 9a443dea63c5 - last_write_checksum: sha1:6abe1098c9866188738c24b9d07fb1440c831a24 - pristine_git_object: 4db529f2f7d510aa971abeac76232281546a38ca + last_write_checksum: sha1:39c41704820f6cde2d67ec3b9f1bcac7bc1a81d0 + pristine_git_object: 8ddf14e86902b5d1b69fd15b7098e489c741b993 docs/components/itemreferenceitem.mdx: id: e6a76e3841f0 last_write_checksum: sha1:715bc829e2cc02c156eb742a88145113fbd7449c @@ -2590,8 +2582,8 @@ trackedFiles: pristine_git_object: 4e7fce4c206a1d335298f04fc0a77a0c98c00b5c docs/components/listendpointsresponse.mdx: id: 1aeb90d09e63 - last_write_checksum: sha1:f1191182b486926d410b238e95fc17b0f0c205bd - pristine_git_object: 2687145f938c790c9ea9601232818b2114cd0db8 + last_write_checksum: sha1:b5d3535ac0e30e1ac1f4f44f3dd17fc8d07aeaff + pristine_git_object: 2df1189da38f979e3ce2bc39c62eb5b79aec3060 docs/components/listguardrailsresponse.mdx: id: ba740952e77b last_write_checksum: sha1:5a75d264da7e1074ccb5529bf06dce343db5a8da @@ -2638,12 +2630,8 @@ trackedFiles: pristine_git_object: 584d53921fdc4463e44d80a75a316aa710f1e901 docs/components/localshellcalloutputitem.mdx: id: 785248d5a428 - last_write_checksum: sha1:81eed95472bc4d2f87e3c28c519e82fb75e8eebf - pristine_git_object: 99fa6e2a4948f502bb295af937883a3f2c18c205 - docs/components/localshellcalloutputitemstatus.mdx: - id: 35259ee549fe - last_write_checksum: sha1:bcb4e74975c086a2267475ae2954631951feaad7 - pristine_git_object: 35fda260302c26b059ca748fc7804d9feb7742b7 + last_write_checksum: sha1:309d22852f60bc305ed2c8fad6b7c6a109f7a0f2 + pristine_git_object: eff6d3493e98cd1165e7e61b88455791e2296053 docs/components/localshellcalloutputitemtype.mdx: id: 01c195fe37c8 last_write_checksum: sha1:8aaab04cfc173280814aee66b0eb176cb162765c @@ -2690,8 +2678,8 @@ trackedFiles: pristine_git_object: decba2cc8470f7751ac025ad9cc9cf195243a7c1 docs/components/mcplisttoolsitemtool.mdx: id: eaafe6825d42 - last_write_checksum: sha1:781dc6f0f15681d6a521fc6882d736f3cbfb2794 - pristine_git_object: d73292f539ff9baed94cbafa56b0e401b1cce838 + last_write_checksum: sha1:9d8b226fa014d3d45a9e22cd54fa004a5b0df09b + pristine_git_object: b36fb7dc09c9dd2b9402004b2be511dfcafda6dd docs/components/mcplisttoolsitemtype.mdx: id: f6a66bf29b6a last_write_checksum: sha1:d6b36cad9e7fe3020168dda96352fb637d19bd35 @@ -2714,16 +2702,16 @@ trackedFiles: pristine_git_object: 11421f055f1c2312710b637f72378d63e9df1d8b docs/components/messagesadvisortoolresultblock.mdx: id: 5a07a5b7964a - last_write_checksum: sha1:7c07658f4384e1ca5ad30f33da19cdb1093c9dc4 - pristine_git_object: ae6b8d91163f69ebb9495697002029e8ac117780 + last_write_checksum: sha1:c85152d6893ab94e48be57d50390aa0d5524b996 + pristine_git_object: 8ae2160d7940e7c995faa49c2264bdbdd121baf0 docs/components/messagesadvisortoolresultblocktype.mdx: id: 3a0dbdde87f0 last_write_checksum: sha1:157db05989f1ae8fe2c02064998a74cb55420fe6 pristine_git_object: e15e5c95e01572a3fc7d59ff16dc4bcc5d695447 docs/components/messagesfallbackparam.mdx: id: d7e026fed5f2 - last_write_checksum: sha1:e2d6138202f6f55f4a17478bff2a13a3e6001cac - pristine_git_object: acb608428580d878f911d7c166c4651a58073753 + last_write_checksum: sha1:3f1e346696d37529787d1d9f85a1efc8e7162bea + pristine_git_object: a6a32a1a5471c55e48cf841cc0cec51937512d07 docs/components/messagesmessageparam.mdx: id: 816cdd6ac883 last_write_checksum: sha1:1632139846752d09a080a715525b127deb43e2fa @@ -2766,8 +2754,8 @@ trackedFiles: pristine_git_object: 5de3f3fc91b9d1c301c8b5d01ebd80acabf1dfc0 docs/components/messagesoutputconfigformat.mdx: id: 6295b9d1e1c3 - last_write_checksum: sha1:83631a2624668b151b07bd84a485206eb52d2005 - pristine_git_object: fdec2e474dceaf742a71a9042724c94720e115e5 + last_write_checksum: sha1:8ec8af1ec2353ad43d43615d734e4d9904d97ce4 + pristine_git_object: cf56b3030cadbdc16b6dfcd9a93cefd83930e6e8 docs/components/messagesoutputconfigtypejsonschema.mdx: id: fbb3784021b7 last_write_checksum: sha1:ac721bbfc3aeacc74104fa841e3f57376c4799d8 @@ -2786,8 +2774,8 @@ trackedFiles: pristine_git_object: eaf4fe4fcbe67dbaacdde671b7774b00e0e31d42 docs/components/messagesrequesttool.mdx: id: f9dc5aede7ad - last_write_checksum: sha1:4b0df6f8636e4882112549b4f036f9b54d99439e - pristine_git_object: e6fae8228c3d685d6cfe815e3c24fa53fd642ff7 + last_write_checksum: sha1:dfa67d1bcd58e5743ba4bcd14d50bb1f5d2b836c + pristine_git_object: d432bb08eebe7bdedf35bbbc41bf3c215ce71057 docs/components/messagesrequesttoolunion.mdx: id: cb1be4df3cf7 last_write_checksum: sha1:bf5c4e8ff92e9f7620dad799ef238f74d15a4102 @@ -2890,8 +2878,8 @@ trackedFiles: pristine_git_object: d6efdde4f36aafc14fa58dcc6b8e50f0d1284dbe docs/components/namespacefunctiontool.mdx: id: 8bdce4795cea - last_write_checksum: sha1:350391a180914af8959c8a43274155913000ae94 - pristine_git_object: 4128c9090f01fba3a0adfd61022362e6a78ebdc3 + last_write_checksum: sha1:8e4cf581fe83ff15083cd73f39eb584cd8519e38 + pristine_git_object: d03d8cb5b51df05acc9c6a60d8a1481a06765f2d docs/components/namespacefunctiontooltype.mdx: id: fd14ccce8ff0 last_write_checksum: sha1:387db4d8991332d689c59af05ae36d1d5f7dc3b0 @@ -2926,8 +2914,8 @@ trackedFiles: pristine_git_object: 37ce7d3651f9c1bf5b33165c28e08db630e95bcf docs/components/notfoundresponseerrordata.mdx: id: 7c59a9c21347 - last_write_checksum: sha1:132aaa6966fc55237f9a4d1926a761b6dfbeec85 - pristine_git_object: 1fed737141362b74726a09d7500ea75bc6c9048b + last_write_checksum: sha1:2070aa94c1db3bbfe3cfb242c63514ad15f3b4d4 + pristine_git_object: e0bc365ca79475fa53de95da69e7c42e8a26a391 docs/components/observabilityarizedestination.mdx: id: 8ab5c92ec9b5 last_write_checksum: sha1:a61629804fb1a6417abc56ebffab80ce4f957715 @@ -3182,8 +3170,8 @@ trackedFiles: pristine_git_object: efdbbbce90ebc1aa26129d87a523551e531949a3 docs/components/openairesponsefunctiontoolcalloutput.mdx: id: f1e4ed07af7a - last_write_checksum: sha1:b5a9a215a1276803c32408bc06352858385c571f - pristine_git_object: 0ccfaaf0986e90e5b3218a00a8328534e69f67eb + last_write_checksum: sha1:1179ca7cef9d376a2845001e52b128d4bb95dd00 + pristine_git_object: 7999eeee6de559807569e73cc21bab2c46d4ee20 docs/components/openairesponsefunctiontoolcalloutputoutput1.mdx: id: 6bbcb4b25cfb last_write_checksum: sha1:faf30716bb6661c1cc97642fa68ae5c8dc100c62 @@ -3192,10 +3180,6 @@ trackedFiles: id: a30dc783a954 last_write_checksum: sha1:dcb728bab175422b8a381bcdea9facad4434f5f3 pristine_git_object: 3b498b5916e80bbd8284d6ad7f7a608b066f044c - docs/components/openairesponsefunctiontoolcalloutputstatus.mdx: - id: 1f929cd48053 - last_write_checksum: sha1:9a7a2baa176ec8490c559d967b3342319bbc76ad - pristine_git_object: d5e7af39351d80dce8b586ea4295be6af05d8bda docs/components/openairesponsefunctiontoolcalloutputtype.mdx: id: af38067ccadd last_write_checksum: sha1:b189125d1756e152441fced6a22160169b8bb1e5 @@ -3306,16 +3290,16 @@ trackedFiles: pristine_git_object: 58f86b3f5daa1fa9712ca436ea350513e187eb61 docs/components/openresponsescreatedevent.mdx: id: a6e32fa959a4 - last_write_checksum: sha1:3ff3e7a7861f3f0d80af0d5f9024a5a41d7e1429 - pristine_git_object: a0433fe2d1c665e7748367f0a2bde9f36aa32bdf + last_write_checksum: sha1:234d3ed23911d2ba98161c36cc0ed57c432dd45a + pristine_git_object: f1b2f4719e3c17dd610907838a43ec10d7360f61 docs/components/openresponsescreatedeventtype.mdx: id: 178d703388d2 last_write_checksum: sha1:4b1d854a6d9a642ceb77be2e384bfb760366c9fc pristine_git_object: 0bde4b814329ff9bb3459c75dcc4d1ca22a700da docs/components/openresponsesinprogressevent.mdx: id: a1e40ec742ea - last_write_checksum: sha1:98062e87795a2f78762b3e4d018cdd8ced693e4d - pristine_git_object: a2e79d407cd69493f33bcc1027f6a84d617036c9 + last_write_checksum: sha1:c27a0995fc4711e2807fb17bbeea3b3da2c5b1bb + pristine_git_object: b9c8edc51a780beafd3f474065f084cb3f1a91c4 docs/components/openresponsesinprogresseventtype.mdx: id: 8f2fa117be62 last_write_checksum: sha1:b998f6837eb1f042c8446182684284641190b32f @@ -3330,8 +3314,8 @@ trackedFiles: pristine_git_object: 53ba3e6a9b38896d18e2aae4bf7c6f90e3e1fac9 docs/components/openresponsesresulttoolfunction.mdx: id: c9aad3ae216e - last_write_checksum: sha1:38309bc74e68d78d62aecf694a729c3e500bc343 - pristine_git_object: f0fbd6bca8f844a1d6d6a8a00bd0c781197adba0 + last_write_checksum: sha1:1d1e83e998d4b48b279b720886fe3c5b6e41992f + pristine_git_object: 9ccb4ab1cf60fe7e28fa73345c434569a9a9b661 docs/components/openresponsesresulttoolunion.mdx: id: d43b7e93f04a last_write_checksum: sha1:631474df38328aa73dd3a511412cbf6b111e2686 @@ -3430,8 +3414,8 @@ trackedFiles: pristine_git_object: a9b4162f9f3bf8ffb3d12cbc74bdbf88fa5f9ddc docs/components/outputcomputercallitem.mdx: id: 0ebf7b2288b9 - last_write_checksum: sha1:8411096c03dd62829511efbdffb52a92eedc9d06 - pristine_git_object: 7d0669ae4dc6f0dac3cb540360c8bbb42d7fdc09 + last_write_checksum: sha1:da85d710450956d2e4aeef97dc281f6e3b988cf5 + pristine_git_object: f765c59f343126c3462d5add49f628322edf3593 docs/components/outputcomputercallitemstatus.mdx: id: 6d6e5a1c9d51 last_write_checksum: sha1:253fdb05674ebb78103ab548e331b9ed4b5a8cd1 @@ -3558,8 +3542,8 @@ trackedFiles: pristine_git_object: b98202d9a57066e51e0a8cffc48f9e909708915c docs/components/outputmemoryservertoolitem.mdx: id: 92da20c0ab0a - last_write_checksum: sha1:1d1afea177009f6ca75f6125d8048a4700495a63 - pristine_git_object: f6fdc65d1058d426edaa5a069c826ff4e626d2a9 + last_write_checksum: sha1:95022ce63b014bb7f2d2f7998e3bf1e94f9dfe5a + pristine_git_object: 57345928f3f975974a43563f23817c5825d7f7a7 docs/components/outputmemoryservertoolitemtype.mdx: id: 7abbcaea1834 last_write_checksum: sha1:f3c98d03ac6bca67329e32b7792d4171e53291b3 @@ -3590,8 +3574,8 @@ trackedFiles: pristine_git_object: 5fded9ec805ec6809a35967d8129ba5bff55651a docs/components/outputmessageitemphaseunion.mdx: id: d42d20f5c741 - last_write_checksum: sha1:62a982d5a04ec6a560fe18b736e7115711891964 - pristine_git_object: 39b73fbecbac7efcd2de1bcc341d6202783a76c0 + last_write_checksum: sha1:02060a2754fb5425093599bd7eddde5a60474b45 + pristine_git_object: 01c36928feb6a35f24db33b1394b307c15886573 docs/components/outputmessageitemrole.mdx: id: 0076b0462103 last_write_checksum: sha1:49a65f5d386b5bb7541c6a2585db4f7d6999846d @@ -3626,8 +3610,8 @@ trackedFiles: pristine_git_object: 47d6cfd6d192f9a86bf5277aa7b47e4579cf9b29 docs/components/outputmessagephaseunion.mdx: id: 6ab2b3682d45 - last_write_checksum: sha1:89e73d889f5588756c23906a04d71fe7c02d965b - pristine_git_object: 67491fda04ec1cb45a62de528ed4f0a712730553 + last_write_checksum: sha1:4a25df28aef513b16a12cabc8c5725e0ad3fc682 + pristine_git_object: 263d82a4d292f8c9ae47cec19eb2e140c17cb82f docs/components/outputmessagerole.mdx: id: 6ecc03d81311 last_write_checksum: sha1:de182e3dbd969d702ee21461bd60b0c123eb5581 @@ -3788,6 +3772,18 @@ trackedFiles: id: 732881d0420c last_write_checksum: sha1:7bcc630ce6294c6792e9f62bfafec09576e49841 pristine_git_object: 223d99a64ce9f4e53eae50f6a8f221b0fbeb69ec + docs/components/parameters1.mdx: + id: 5de8e94956c0 + last_write_checksum: sha1:382f4471f8f1a7c8a627fec6e59ba39d7c399857 + pristine_git_object: fa7228a2689a935954252edcaab534fe78d117f1 + docs/components/parameters2.mdx: + id: f5e4233752ff + last_write_checksum: sha1:72885d3e8f68c2b831b015b2b0d066f40c396bc4 + pristine_git_object: 08033643883b4446e483d357c9306e0c0e45967b + docs/components/parameters3.mdx: + id: 81a2be3e2e2b + last_write_checksum: sha1:374253b95394c178921ea73df2b5dbcb0f7ac419 + pristine_git_object: 10aae49519a15c0c8e3206be854249d6b98d106a docs/components/paretorouterplugin.mdx: id: 92e7a1e63fd0 last_write_checksum: sha1:493693e42545592735e9103c9c0a343911a3ac55 @@ -3806,12 +3802,12 @@ trackedFiles: pristine_git_object: c61b4bcedbe8bd7306ded6bc263128087aa4362f docs/components/payloadtoolargeresponseerrordata.mdx: id: 2ea2198798f8 - last_write_checksum: sha1:98c67fbe3ab45540e878852c690e3aa5df72a2ad - pristine_git_object: 3d55fb22f33c851cc1f6bbf4bb52c65bb479d2e6 + last_write_checksum: sha1:c9ede31f7e5c5a10bb6f2cacd6c88db897d08c9b + pristine_git_object: bb7c7f6be6128af0aa1d84faf2f9205ff76602f4 docs/components/paymentrequiredresponseerrordata.mdx: id: 7c3cc66a62e7 - last_write_checksum: sha1:b7f48b734f5190c78aa520439aff6471a2b474bf - pristine_git_object: 2dc83a9d5afb9dbb568fe489bf5cfa58b0a60fcd + last_write_checksum: sha1:53c02263620d15a401a93dc7fa2ea2803c5762ea + pristine_git_object: 225e28808b2a137a21287370d5708ebbd09fd12c docs/components/pdfparserengine.mdx: id: 4413c8716154 last_write_checksum: sha1:bfe77eb11094614101feca1ec050b90edda29cd7 @@ -3850,8 +3846,8 @@ trackedFiles: pristine_git_object: c03fb6fb692b8af0f720a70f36b214cc8c36b785 docs/components/pipelinestage.mdx: id: d61180ec88b0 - last_write_checksum: sha1:d49a71a6279ca655210b5d5c2317799e3ac6c97e - pristine_git_object: fb000252497e0c2405b948b80d2e56e460fac96f + last_write_checksum: sha1:ac2d12878badb694f2391dde1ce45bd1d2350802 + pristine_git_object: 2f7a26c028b9aba1301d605afc0b3f1bcf039542 docs/components/pipelinestagetype.mdx: id: 3c54779ba868 last_write_checksum: sha1:2e5611cd5f6c1ce35c979a1046b142c66895f9aa @@ -3878,20 +3874,20 @@ trackedFiles: pristine_git_object: 804c05f5b01e92720404054632970385ebf87184 docs/components/preferredmaxlatency.mdx: id: 8ca10c660593 - last_write_checksum: sha1:606748118011316ae4563b9afe99105f61968053 - pristine_git_object: 0c78ef7a9fd64d51b1b6dc981d6d609b74beb1bf + last_write_checksum: sha1:1e14c093fe460ef6edc9ab5c0155a21e70827e35 + pristine_git_object: 6950adfda5363a8fe1761999c9b83ea1e4b1b11c docs/components/preferredminthroughput.mdx: id: 395a738d1f59 - last_write_checksum: sha1:83fabc28a3caf621d3abe6e1202922b00278e594 - pristine_git_object: 348b570390ecd6845e362a4984ecd563daad710a + last_write_checksum: sha1:6e1ef8d2524ac141cb0428327eddd8a742ded98b + pristine_git_object: 9b965b8127ff716f9bac7efc3ef89f4a9727795e docs/components/preset.mdx: id: 9069cdfaddbc last_write_checksum: sha1:87eebf424e40efb670c2bc0f617c903a6f9d3da5 pristine_git_object: af18885fe3cc9a11fa73f5366f9530aed8732750 docs/components/presetdesignatedversion.mdx: id: 600f3d47dfc9 - last_write_checksum: sha1:387d8e514d995d0d5a35b77a90693972d4aeda97 - pristine_git_object: 0db549178d21f9cd5ff214ac21909bcf90d1e531 + last_write_checksum: sha1:3f26cdf84cde4a36179a5c604aa8bd66af13a074 + pristine_git_object: 5c5675beaf31e5b109617040c2d6eb9055f891d7 docs/components/presetenum.mdx: id: 5c9d69c551a8 last_write_checksum: sha1:5d1fdd6337d62463657cfbae4a58abb21cedc03d @@ -3962,16 +3958,16 @@ trackedFiles: pristine_git_object: 1d91d32cd0bf4b64699bbbf05a7e95ab835b10cf docs/components/providername.mdx: id: aa3a4904b228 - last_write_checksum: sha1:2fca88fd3c0e429a7d8894df22d50feb2af4ab62 - pristine_git_object: 073e1a1356cbefe610aacd0139a34fc75333cdfc + last_write_checksum: sha1:6eb2feecb38652cc41c3bdb5cef4ff0e1aa36ea2 + pristine_git_object: 311793cd8513dc58817c521be6183115608a2d4d docs/components/provideroptions.mdx: id: 2697807524fe - last_write_checksum: sha1:40fa92387abef6e5f06e84621e020feba4ad0ff6 - pristine_git_object: be2483fc3b11cddc5f3bb731f0d62c05fbf57e3d + last_write_checksum: sha1:e9ebc5e3e8f24a90121b8659be5b084895a4fcf8 + pristine_git_object: 9c1c5a8e4c58f2f4ba0e7328a01b7f5ce9432ef2 docs/components/provideroverloadedresponseerrordata.mdx: id: dc500cd14889 - last_write_checksum: sha1:6c1d551db4083f1d0bc429baa1ce472d2c085331 - pristine_git_object: 05bcfceecf3e74def73684391a76fa68829271a3 + last_write_checksum: sha1:8326118941c8899a398931c8c7871af21b716b00 + pristine_git_object: 8318f521198142d8efdabba734e091545bf1a648 docs/components/providerpreferences.mdx: id: adbdfaa46438 last_write_checksum: sha1:26ef79be79d733e12a89acc7687ccbd87ebc2f2e @@ -3990,16 +3986,16 @@ trackedFiles: pristine_git_object: b9fce30d460f0ed187b5c81225d41c8f4217d1e8 docs/components/providerpreferencessort.mdx: id: 64d54fd9ff0b - last_write_checksum: sha1:4eb43e63950c0481fae29816afe807226bdda4ea - pristine_git_object: 72d68077694236233f2bde5d65959b550210a20d + last_write_checksum: sha1:c61960af0fd74aa61c48d12cd2cf284e4aa173c1 + pristine_git_object: 2030486f3f56256c05f87da6075d281291931ade docs/components/providerresponse.mdx: id: 36e1a24f90b6 last_write_checksum: sha1:512adc6bd7e7854ce01d5e5c46ce76b26a1b1174 pristine_git_object: dd376f0952fa0517dd83b06ed7afc2c856123dbc docs/components/providerresponseprovidername.mdx: id: 2fc17b61e546 - last_write_checksum: sha1:a1eb07f99359330f56cad118bbf678ee3eb13f1b - pristine_git_object: c77d24a341cb5ee57ac91e9330cfd32f47d93a57 + last_write_checksum: sha1:50933d213120e22c958af792a234e1d93c796305 + pristine_git_object: 8cbe511b2c8c01bb212761e58b6c09cba67ebf3a docs/components/providersort.mdx: id: d73fa13eeb95 last_write_checksum: sha1:b7e9e6842741e3433d705bd576f2ac5383f00134 @@ -4010,12 +4006,8 @@ trackedFiles: pristine_git_object: 5aa8e90a6761d61aa63204bc3aa73f4481449d3e docs/components/publicendpoint.mdx: id: ec4843ef5d86 - last_write_checksum: sha1:3cd9799262a806acabefeaee43d5069fb58ab4c6 - pristine_git_object: 53b22a2c5d91fdc4ee5e39d7013b09b748d763e2 - docs/components/publicendpointquantization.mdx: - id: 9b0ec1bdfe07 - last_write_checksum: sha1:c820b5a85f593030702969f8bce4d81358d222dd - pristine_git_object: 4498d08fd82f26a210eeed2b9659e6a0b321f9ef + last_write_checksum: sha1:8a499c9023bc56ff897a679498f25c9f5b9bfa2e + pristine_git_object: 79cab2229e8e7311306a7462425c372865908ecf docs/components/publicpricing.mdx: id: 61fb18b7ff94 last_write_checksum: sha1:e241420249fcbd1bf515b0f5e84934de0b207948 @@ -4062,8 +4054,8 @@ trackedFiles: pristine_git_object: 99c4a374a4dacb8e64c8a1cf5efb815fb177e22d docs/components/reasoningconfig.mdx: id: e5500b541923 - last_write_checksum: sha1:b83b9e28c2808197ddfe72729f5f2795b5df3b33 - pristine_git_object: d087355d2333bdff545bcfcb351aca98dbd8a4ab + last_write_checksum: sha1:b0e83c1220f90bc3fec77e884c2c588f8b65bfbc + pristine_git_object: 12bc5225a834bb8d2e061799b86ad4378c0ef627 docs/components/reasoningcontext.mdx: id: 8187c67b9cf1 last_write_checksum: sha1:b24b2ff096dbdf64839e0842812a043a95f2f9a8 @@ -4230,8 +4222,8 @@ trackedFiles: pristine_git_object: 51b26cc819421478797a67e192f2c8952cab45a4 docs/components/requesttimeoutresponseerrordata.mdx: id: 6f984fda78d6 - last_write_checksum: sha1:b730dd6e83db69efbba25f05cd1c0f76f7297e1b - pristine_git_object: 71579d93bbc9647c3057821314ed3eda9b8626d6 + last_write_checksum: sha1:bc2a0f98b623f4382ee1872cf8088477d81dd7c4 + pristine_git_object: 711c93c9ae4d9dc2a10d34b83b5c4f02fc56f7d2 docs/components/requireapproval.mdx: id: a207e0b4b049 last_write_checksum: sha1:48b763f7ee9f04e2986d74edfd952ce6f8f97d3c @@ -4246,8 +4238,8 @@ trackedFiles: pristine_git_object: 0e65abee2cd9ce152b68dbe3180739ea36b949e6 docs/components/requireapprovalunion.mdx: id: fd80c94f61ca - last_write_checksum: sha1:866cc7d438af77925b5ea6ae7f17283826ecc1c4 - pristine_git_object: 9ff15b470d192a2717e19f15ef0154de10522615 + last_write_checksum: sha1:9df63b87a79a3ccb889870640b0d658ea57436fe + pristine_git_object: 01acc3f8d0a451cf6ca5d1c0da90995c79f8f727 docs/components/resetinterval.mdx: id: ef4f6969df8e last_write_checksum: sha1:e47284974689070a1dd9c82195e4588fe9ffe17c @@ -4290,8 +4282,8 @@ trackedFiles: pristine_git_object: 996cffee821435729436d7f29bce4333f4900382 docs/components/responsesrequest.mdx: id: 0dbcef40a4b1 - last_write_checksum: sha1:23d64827c3909d71491a7fe2c0c36d9e7d5b2b36 - pristine_git_object: 446462b588fabaafd125bab2e7b0d26363929dbf + last_write_checksum: sha1:fb01710e6cc89f6e9fa2580cd3b6e2e8b7b73567 + pristine_git_object: ce6df6a25691a4e35b54d39fee2ed70c5816199b docs/components/responsesrequestplugin.mdx: id: 4d550c41c85f last_write_checksum: sha1:ab9d1e6c062cd51fc976da6ccf393e9974171f7b @@ -4302,8 +4294,8 @@ trackedFiles: pristine_git_object: 51f9b5996e0a3d693726e27c3ac8095b926091ef docs/components/responsesrequesttoolfunction.mdx: id: dd0c817d15e6 - last_write_checksum: sha1:884bcbda9812577a8ff36fa962d33421e13da3c1 - pristine_git_object: 5f6cc606242e0f8343c7bef1d54e640fef620a80 + last_write_checksum: sha1:62c86a4a1d5536672f628e9ae66f4af3c33c7dd7 + pristine_git_object: 783bfa34989ba0d535cfd1126a68fd3601118639 docs/components/responsesrequesttoolunion.mdx: id: 96bafa5d19b1 last_write_checksum: sha1:c626fc897137022d93c3bc9a1053353ded2c42ef @@ -4314,8 +4306,8 @@ trackedFiles: pristine_git_object: bd4d080a74641b4a2018d2cbddbd16daa3ae7b0a docs/components/responsesstreamingresponse.mdx: id: 5eefe41f1850 - last_write_checksum: sha1:06ac8357212098a2e461592ff4cd29ef9e7e1fe1 - pristine_git_object: a9e4e2a7461ba24eedfd00740bf4522607e64a04 + last_write_checksum: sha1:5bf57ab774a603b3602b049675a50e7cb4f22fa5 + pristine_git_object: 2d97adfb5bb7dbf37bc14c01411221c05d9540f3 docs/components/routedservicetier.mdx: id: 1ecc7cdd925e last_write_checksum: sha1:538e8fc60dab1d88f2b735682161cc8ab6101d5d @@ -4326,8 +4318,8 @@ trackedFiles: pristine_git_object: a082fd19fb49f23a7b87c8bff4339475d2ceb54e docs/components/routerparams.mdx: id: 48b1835a3807 - last_write_checksum: sha1:3edebb97271f1405f8347235a7f58f9ac018ec8b - pristine_git_object: e5316d7870bbb825b96980dc2488bde156bde638 + last_write_checksum: sha1:ba67b89edeed36a3d6bed50a420c929b7f574c1b + pristine_git_object: 5354eeb9d546b4a2766037d9c7bfd6e1dfe16e76 docs/components/routingstrategy.mdx: id: c74229969aa6 last_write_checksum: sha1:dc0caaa60b7c88580668cc4393486f13b3b6e636 @@ -4370,36 +4362,28 @@ trackedFiles: pristine_git_object: de0d677d4f188af0688f78b8c8a25ae07ca3a093 docs/components/serviceunavailableresponseerrordata.mdx: id: 72f01d77e774 - last_write_checksum: sha1:7b53cfdd92a87ef0b70e0b5f7d2031e73bcbe033 - pristine_git_object: c4f86510dd56bef5dd5cabb2587ebe6f04bfe983 + last_write_checksum: sha1:5ca87c689aa95fc476ccf60129736a3c5c8021fe + pristine_git_object: e4da707cb407e833a9a541405e7c546b78d990aa docs/components/shellcallitem.mdx: id: 172eabd6add3 - last_write_checksum: sha1:8648ce1b124e619f8ee36f29ad17d6f05bb2d54e - pristine_git_object: 02c5c8a8803a5302755cf8aea534a75ee5144381 + last_write_checksum: sha1:a6a305a8589a1ec230110e823639d7ce13b568cd + pristine_git_object: a43e459881ee109bfee9a4ade1f1c9a24c82fec8 docs/components/shellcallitemaction.mdx: id: cbd26fb9049f last_write_checksum: sha1:e1f76bee9ea1ac27ffc7bad531335b55de3110e4 pristine_git_object: cca3bb6149631c73acc99918017138a85d707256 - docs/components/shellcallitemstatus.mdx: - id: d212b5774e0f - last_write_checksum: sha1:676d928f202fcef08ac3043f374d7b1233fe0793 - pristine_git_object: b6ec73cdd2e1360daa475564b254479f875aaa0c docs/components/shellcallitemtype.mdx: id: c198ee9e7382 last_write_checksum: sha1:933fad7f148c81a73de7bf0d6f2083038fc0803b pristine_git_object: fe8aa0d80f56454a4326d74c8ee8a7793427312d docs/components/shellcalloutputitem.mdx: id: 3c692a7914b0 - last_write_checksum: sha1:deda355e7fbab3d845fe343c9253a1d304f59c73 - pristine_git_object: e4456b9caf3dfb944a968140d5d2ac0d08033ec9 + last_write_checksum: sha1:190b9acbe6dfbe3795fa404724583b22f6fd559a + pristine_git_object: 7cf2cb9d735df608d9fc52994bd7f99a88c195b9 docs/components/shellcalloutputitemoutput.mdx: id: 85a0aef86180 - last_write_checksum: sha1:10743226453034a964c7161509f4b14e0a132bda - pristine_git_object: 9d4855758dd00d9ec1d0ecc32f0e274073756c4f - docs/components/shellcalloutputitemstatus.mdx: - id: aaef41438132 - last_write_checksum: sha1:0368af73f91840e63378168ca74b9d5197c5eac5 - pristine_git_object: d1b61c6d1baa184fc306ac13f47fae2f0bc04c57 + last_write_checksum: sha1:5b791955f59fa0170ab221c7c28596f3e14361e3 + pristine_git_object: fdfd9aee41199b4bb26482e8d29b4dc60bdcbf32 docs/components/shellcalloutputitemtype.mdx: id: 13012771fc34 last_write_checksum: sha1:0bd6909e931eeb3ab3a22dd98b9a51c67f1d0dfa @@ -4466,8 +4450,8 @@ trackedFiles: pristine_git_object: 3a93298ea9bc10f11e468d2eb33c2bd8e7e12f40 docs/components/stop.mdx: id: 338b29992e2d - last_write_checksum: sha1:6f2df577e3400448f42393a716630ea5db75664d - pristine_git_object: 0f147f6e0e0f2a55ba73df5e4f5f76a47288bafd + last_write_checksum: sha1:9dda52333be95669e9c460690bed92ffa8a0bf14 + pristine_git_object: 6c1483e398520806598739fdb5381dab5578c5a8 docs/components/stopservertoolswhencondition.mdx: id: 5fdb9a5c17ee last_write_checksum: sha1:fd59b93bfdf655a268171fc4f35170cbffa72f47 @@ -4522,24 +4506,24 @@ trackedFiles: pristine_git_object: 149400c47139d6908783f1dd9cfd2700a211bfdf docs/components/streameventsresponsecompleted.mdx: id: f7c112325f05 - last_write_checksum: sha1:968fdb7b3f668c102b94eb4069ea389b196afd1a - pristine_git_object: cd399518e63843cdca98e49ab9bfccc57166e43f + last_write_checksum: sha1:289f19b6527fda93d1449df57ba6a525aee25bd6 + pristine_git_object: 35bdaf3132bc3b982be6c3b0072838b0a45e6052 docs/components/streameventsresponsecompletedtype.mdx: id: eade599586fb last_write_checksum: sha1:bb7f8b52b58723b63784282fc23bff82a96ce715 pristine_git_object: 1854d017509749ea4056f864374f8609a60e2e3f docs/components/streameventsresponsefailed.mdx: id: 145096a2bdaf - last_write_checksum: sha1:7ddf65a8ebbd3a48f40b32b3f568ac3043d9ec44 - pristine_git_object: 4c53cdcc151caefa0cd608d055e1c9af0d87f34f + last_write_checksum: sha1:e54c5123f7c587f0cfde05ac30fa8b20008bb135 + pristine_git_object: 2fe71e96338c1cb4b76abbd66ba457586cf2e167 docs/components/streameventsresponsefailedtype.mdx: id: bb4fc1534206 last_write_checksum: sha1:904e6d2b6578234a38eecf125187a6c73dfbe312 pristine_git_object: cbec95a0f963603cdf9f877151b5a1c0fa916680 docs/components/streameventsresponseincomplete.mdx: id: 4f76d6544571 - last_write_checksum: sha1:4e52e8ba4f13ad9a1c7e312b4456e350f43f09b4 - pristine_git_object: b493c3ea9d40ca4663ce4b3b26311575e5c18fbf + last_write_checksum: sha1:3f70bc4bfc7517bb164675c0cfa39df8fd8dbe21 + pristine_git_object: 0abd1db555ae3f502298dd28e574828e8a27d7e8 docs/components/streameventsresponseincompletetype.mdx: id: 2c820f020fa7 last_write_checksum: sha1:51ddac4fa44dc865b81e9606911f8a056d2f1ed9 @@ -4606,8 +4590,8 @@ trackedFiles: pristine_git_object: 994522a52060add3b501680d2be27546ded1dfe2 docs/components/subagentnestedtool.mdx: id: 12547a9efd5f - last_write_checksum: sha1:9141ce608f42d2c53e89f0e8e108252227a7366f - pristine_git_object: f8c149bf1aad26099c739360e137038a9e0e2295 + last_write_checksum: sha1:60f49c10d3b5c552a65ef4462d24e02a615cbaa8 + pristine_git_object: 957462250a173bfdf34ca2440fb46cbbd5a06cf9 docs/components/subagentreasoning.mdx: id: 2e412fc3ecc2 last_write_checksum: sha1:095e527fa9f146290858b2c98b6a8ccc11755e37 @@ -4728,14 +4712,10 @@ trackedFiles: id: f8f7eb6e6313 last_write_checksum: sha1:4061554783746bdb572dc5eb4ae678a677fc6c5e pristine_git_object: 8d52bfaecf3fa301b6e9466ed356adb0b9202085 - docs/components/tokenizer.mdx: - id: ef12023b8d33 - last_write_checksum: sha1:207a75b5e4a8301a6cdbd39605c0f398bd13e305 - pristine_git_object: 54a7627079b16a50865cf6f2224abe36870c95fa docs/components/tooladvisor20260301.mdx: id: df2858dddd07 - last_write_checksum: sha1:2dd846c19c5dabfeba4fe838ca60bd495c31e689 - pristine_git_object: a00186b54ba47296aed2eb1098928f3b4a565ceb + last_write_checksum: sha1:368a170e20857d634bf0295c49689d800c3d08ee + pristine_git_object: cf0c0f91f3714960af42a62f096739f68e9b63c6 docs/components/toolbash20250124.mdx: id: acc36fba0c55 last_write_checksum: sha1:b899d22b5559c09fcaa14c5cd3ff18f914ad34d2 @@ -4750,8 +4730,8 @@ trackedFiles: pristine_git_object: 4a4be403a109154164a55c4a1d2b05f82f5b97bc docs/components/toolchoiceallowed.mdx: id: 2e62b54eb471 - last_write_checksum: sha1:a8c96649c4ba3e5cef672c74974fb5cb5aafc99b - pristine_git_object: b33a149ed34b20fc275c5d77f836e14b8b490d5c + last_write_checksum: sha1:f994e46e82faca37f9fac0982a5de7691e4733f0 + pristine_git_object: 4e85322c750b6d9b0ee4d3dc5fe1c79719896613 docs/components/toolchoiceallowedtype.mdx: id: bef41aac6932 last_write_checksum: sha1:00e69b23722c812ea28a000ba48fd6ae140fcc1d @@ -4788,10 +4768,6 @@ trackedFiles: id: ac3c7f5f5fa6 last_write_checksum: sha1:bfbecb3b4e70cb8a4aa0379246f4ffbaae71b341 pristine_git_object: f5ff9bfa009e34e0326ff7ef88e82082e54b20cb - docs/components/tooltypeephemeral.mdx: - id: b005ae7a4f69 - last_write_checksum: sha1:cb0079eb8c5809a9f76abb6349ad8a23e7f0c8f0 - pristine_git_object: 48e6f8afc2a41ccac4be220dd5d5d475a4d36b71 docs/components/toolwebsearch20250305.mdx: id: e583eb0b3bd1 last_write_checksum: sha1:a750dd139f327bf53d4cde02e6b897afa274475b @@ -4802,8 +4778,8 @@ trackedFiles: pristine_git_object: 062b3155e1ffd04dae559ccc126ff8b922616aee docs/components/toomanyrequestsresponseerrordata.mdx: id: 282b92f982c7 - last_write_checksum: sha1:976995e37e897805df9f3f50c0aae39e41447822 - pristine_git_object: 09697e35761a40ad45f0715e05d25a9f57d30b31 + last_write_checksum: sha1:9d3b6a16b957f23c20af5cd2c2d86780de35b2e6 + pristine_git_object: edc2b7de0a732e69c2b1ca68e23805764b7db2e0 docs/components/topproviderinfo.mdx: id: 869c6745d5f7 last_write_checksum: sha1:6e10b9871f7eb7bf986ef79542e2eaf956a24cc1 @@ -4814,8 +4790,8 @@ trackedFiles: pristine_git_object: bf6cd57c58962523bd7ba842c71b39305a446bbd docs/components/traceconfig.mdx: id: 61aafb246ddf - last_write_checksum: sha1:22a923aff3d5ee121860116be8f5ae79dda77aa0 - pristine_git_object: faeac4da1a7bbf70947da8fcf38246bba718b149 + last_write_checksum: sha1:0255da4e787467fac4f5cd4d27ccd4828fc2b86c + pristine_git_object: 9dadf765497e020be5bc88f8df59021e9f2358f4 docs/components/trigger.mdx: id: a19ce9db8778 last_write_checksum: sha1:b5b28ed637f381b8778df75d590a6845b901adb7 @@ -4986,8 +4962,8 @@ trackedFiles: pristine_git_object: ff44734cf33cb8a24c20bbfb96dec9ef2ac504e9 docs/components/unauthorizedresponseerrordata.mdx: id: 74e10dac821b - last_write_checksum: sha1:5d05ecd86d6a093c6008c5fc80ff1d4093faf67e - pristine_git_object: 2b412cd70e911b8c1965a0197f6a5d6fe19dcaae + last_write_checksum: sha1:01dbc5e3adede05f48949cfd626dd467f5367310 + pristine_git_object: ff7c1ed43f3aba593c2fed7eb76fd41471df8ae5 docs/components/unifiedbenchmarkpricing.mdx: id: 65fd7d529047 last_write_checksum: sha1:a79219ea4353fe6838ca5ad1350e2da1abeb33bb @@ -5038,8 +5014,8 @@ trackedFiles: pristine_git_object: 83f68ad45191f3772161e6e74b618370f82b4df4 docs/components/unprocessableentityresponseerrordata.mdx: id: 7171837ab497 - last_write_checksum: sha1:47473559198e24e72ead5fd9ae6107d1c859ae6d - pristine_git_object: ef85de0e3899f1f4855e4a3dd7d7bf9df5157937 + last_write_checksum: sha1:fe645e7a874320f871b2ab92dd9cd945b316f688 + pristine_git_object: 5a7e1816ae9370995ad90941ba4ba288d170d421 docs/components/updatebyokkeyrequest.mdx: id: db0862ec6814 last_write_checksum: sha1:455ef2d62d3a47dc683e611a1e5b9943173f41d0 @@ -5058,8 +5034,8 @@ trackedFiles: pristine_git_object: 7fd2bcafeabc1be627f99a868c06c6f597d04856 docs/components/updateobservabilitydestinationrequest.mdx: id: b54091567003 - last_write_checksum: sha1:9ba0d6c18b145237efd307d621834669669838f8 - pristine_git_object: f13384238a27b4d58710d33648c8ac8de766635a + last_write_checksum: sha1:9e12578f78f48311412291d5e39c101bbdad9e62 + pristine_git_object: 56bffb4ea7a9897806c0b5e8f14e08bfeca8bd6e docs/components/updateobservabilitydestinationresponse.mdx: id: be9661c3676e last_write_checksum: sha1:c8fde493ab2c8285b0a800795e6106f2dbf3a63f @@ -5090,8 +5066,8 @@ trackedFiles: pristine_git_object: c5fe94ebc3791026c16a9636c7d6077773297e19 docs/components/usage.mdx: id: d84b29a6ea8c - last_write_checksum: sha1:b279f416f251c361dd705a2960b17e23c63aa508 - pristine_git_object: 2b203365a2a132a20be296a0acf7ba080780f44b + last_write_checksum: sha1:e70e4dc0ed86d6a0637640b40bc9b6e3a94c908d + pristine_git_object: bdccd14638993ccc967858574f6891c7033dc78d docs/components/usagecostdetails.mdx: id: 95d8a52fead9 last_write_checksum: sha1:d8b2597a2921b79c43fd30173a8c395cd60584b2 @@ -5118,8 +5094,8 @@ trackedFiles: pristine_git_object: 67f56887bb4758559189e3e9e6123dff9a38df81 docs/components/videogenerationrequestoptions.mdx: id: 1d67160e7e7a - last_write_checksum: sha1:6f6d5aba97e8d7e366e15d65c4462270030ccfde - pristine_git_object: 9ffcd9ec7e10fc2d8674ae3b90b9afb53cf48c49 + last_write_checksum: sha1:85ff779c4d9b17b5e6cfc6b7d2c6b2d49600d624 + pristine_git_object: 696bc465f6244a645a8b92ee920569f8503376fe docs/components/videogenerationrequestprovider.mdx: id: d6424dd5de9d last_write_checksum: sha1:72aa46a3335220b579db56574ea179d150dbe2b6 @@ -5298,64 +5274,64 @@ trackedFiles: pristine_git_object: aa60a54ac2096800d7ac3d9b1130beeb9507428b docs/errors/badgatewayresponseerror.mdx: id: d60591f67794 - last_write_checksum: sha1:2c6bbb4b3b91f42e43bfc82ece58b32186ab6d6e - pristine_git_object: 62ce7a1a3bde35c8ce38409727739d8c9e6cc59e + last_write_checksum: sha1:fa8405fadd704b16b0f6bbd71e923f76a3c8fc41 + pristine_git_object: d596a9c0e4e34546942b8ec71ff02c5cef22eef0 docs/errors/badrequestresponseerror.mdx: id: d595cba2d9a9 - last_write_checksum: sha1:9ce55e58857e8f87b9a69bccd2023fef9a4bbf36 - pristine_git_object: 5453987ea78be5e72cac82bb71023b40528c1cd6 + last_write_checksum: sha1:bad7d766ee81f14d911697b80bff4687e90a1fbf + pristine_git_object: 68e67bcf878f4851e6df41b2e3ba50ccb5560e7b docs/errors/conflictresponseerror.mdx: id: 130bd0076f35 - last_write_checksum: sha1:e996aed582dc99500d096ccb83cf68911fc40494 - pristine_git_object: e3a48471610ada9efeb64f8e3443999afa6833e8 + last_write_checksum: sha1:7e864ef86f3fc50e28bb4e9b1ae06fa88a46efe5 + pristine_git_object: c6f96de8872f7e4039dc2cf35f6640985afe8e83 docs/errors/edgenetworktimeoutresponseerror.mdx: id: 203457916ba1 - last_write_checksum: sha1:c33c9d83e9a29351bbd7b2b28a6556672ac7603c - pristine_git_object: 5e48d2ebad3bb46df3a4e0bf0b22313865fcc403 + last_write_checksum: sha1:bbaf327200c0ef9170debc1269fd0a7a4ee3ec04 + pristine_git_object: 845c9d6c097d0a2705871a8738a7aa8643bbd372 docs/errors/forbiddenresponseerror.mdx: id: 224f2ffa6660 - last_write_checksum: sha1:004c2860216b8b04b4362b928c509a54cced9f9a - pristine_git_object: c520471dddef3c548f5481114e12be90b7bd5788 + last_write_checksum: sha1:940ddd9376d3f0304037bc9142855a89e2d22014 + pristine_git_object: 657b79d00920fdc803264dd740380fc1ef579466 docs/errors/internalserverresponseerror.mdx: id: e3cb72f51ee2 - last_write_checksum: sha1:330b24172967b4b0bc97b4d58a455d8075a0c339 - pristine_git_object: c4a95bf16f458aec79b343ea20006e05fbf87a90 + last_write_checksum: sha1:144494af097e80aa9fdb921d094b2473bc598165 + pristine_git_object: 2a892b08d47733e805a94c47c7f87252f262f753 docs/errors/notfoundresponseerror.mdx: id: a387a1eb646c - last_write_checksum: sha1:34bc6d1c3d39c2ffc1c83490364d675c032e0698 - pristine_git_object: c9c23ff0f6a2e8d17157c282cc6a9d7caa6de156 + last_write_checksum: sha1:c31fd704f361e6d1d568d734c469fa9c37095f9f + pristine_git_object: 5ba79a1971d60ca1b9206e13512beef48e6b1c47 docs/errors/payloadtoolargeresponseerror.mdx: id: a2428bf1899b - last_write_checksum: sha1:57ade2f54c10306bc800eb0390197b6ea96d9805 - pristine_git_object: 06c96f02e63fc9d532d04cdf30b718594858663c + last_write_checksum: sha1:79e6cd4573d4513e697f28905946946a114c6812 + pristine_git_object: ba4d28b0d6ec5487aecbba20649165cfad105e56 docs/errors/paymentrequiredresponseerror.mdx: id: dddfbda01b46 - last_write_checksum: sha1:214872e286b95ac78f8806d8787d837b5536cec8 - pristine_git_object: 959733dad5b93a9265224c21c11e90795a560dcb + last_write_checksum: sha1:2905625b989af35c56f17d821a05684690c90e2a + pristine_git_object: f632aa144f5739ec50bafd075a2a80ceb6d1204a docs/errors/provideroverloadedresponseerror.mdx: id: 86b8324f4884 - last_write_checksum: sha1:9148d265697baed5a75d52a5ba06f4c079add6ae - pristine_git_object: 44e71a2b362b2907eb75d19f8f0a715a4cd437d5 + last_write_checksum: sha1:db4aa5c0860f105e23b1152ab5bbadafd958203d + pristine_git_object: c24817c5311c6c8a697ec0b26110ef0ec4e6ca38 docs/errors/requesttimeoutresponseerror.mdx: id: d6a4789cc5eb - last_write_checksum: sha1:6d03c71193040f4229370eb7526f13149814617f - pristine_git_object: c7bdd746a3c0d98eab9c3d37cdb0f467013ec7e2 + last_write_checksum: sha1:e4659b590e40ba07301f27d01accd7a1f2366c54 + pristine_git_object: 81393cc7802d8d0bbd558b9128d54879638b9c20 docs/errors/serviceunavailableresponseerror.mdx: id: a3536716f3f6 - last_write_checksum: sha1:b75ecc4a893b1688dd505df67b2b34e26fc92509 - pristine_git_object: 978785d13401de872aeeac3b206e1f330db5dee9 + last_write_checksum: sha1:00a14f5d9944730fb64683e7b70ab401523e0ee3 + pristine_git_object: 102116c631e857d6aba4da70b5df5b3cf368e828 docs/errors/toomanyrequestsresponseerror.mdx: id: 86b383c731e9 - last_write_checksum: sha1:cb80997427e487d5cd2ffa80f629bf59743fd181 - pristine_git_object: dae39dad4f021c874b685558b8e59eb79301e154 + last_write_checksum: sha1:3293e4e1edc5855fd8211d33e27d64624ed43e23 + pristine_git_object: 67bd342cac1e6e57445145efa8686fbce99a6018 docs/errors/unauthorizedresponseerror.mdx: id: 67ef9f36961b - last_write_checksum: sha1:7378c72dd35e5bcae7316ade30f6a53dbb74c35d - pristine_git_object: 5a1e49f8fd03ef86c17aae606516498e0cb2c735 + last_write_checksum: sha1:1fe41010da6eda651220e004e33b6c781c395056 + pristine_git_object: a24d0576d4f80a63377b94ea1b5219bde4ae93fc docs/errors/unprocessableentityresponseerror.mdx: id: 83abdd4bab47 - last_write_checksum: sha1:b1ff6bfecf10def4eb3a1d3f5be9b9cbf13ce926 - pristine_git_object: f8c3a25b9388bdf08c42aebaefc8999f86444d6d + last_write_checksum: sha1:86927f98cb0a5a2db951e1e3f916630e3bdbedb5 + pristine_git_object: 75813e9f2f0ad8efa3c201b5217ff1c759b2fce4 docs/models/internal/globals.mdx: id: 97b492e9b34b last_write_checksum: sha1:ddff7485f3cc1d9d01d082c38abe327e7ffee296 @@ -5826,8 +5802,8 @@ trackedFiles: pristine_git_object: 0dd87c38f141db84e0bef92f3892ff61547017c1 docs/operations/getapprankingsrequest.mdx: id: bcd34adce28e - last_write_checksum: sha1:07836acd4dbcdaba0b4568e57d11bb00ed9583e4 - pristine_git_object: 48980600a276e5c3d71984a0f63ef6e9833d5a6a + last_write_checksum: sha1:30fae60617848ef643cd7cbbc7ee70a100448eb6 + pristine_git_object: fb3afc125353560dfa1cb2fafa8faeff795d2f41 docs/operations/getapprankingsresponse.mdx: id: 78ec0c166748 last_write_checksum: sha1:76d20b72282d029ef416eb608a3e63c176d09364 @@ -5942,8 +5918,8 @@ trackedFiles: pristine_git_object: e6beafcf11154033e2951ae58103041a2af946b9 docs/operations/getmodelsrequest.mdx: id: b2627beb1959 - last_write_checksum: sha1:416ad223f0e50e03f76f5da03ca4c3d97754201a - pristine_git_object: 532a1ab9bd3372f778cf6406d9ac686305006228 + last_write_checksum: sha1:50d68546586964b3634f61bb13aa4117885e3648 + pristine_git_object: 3c93e9ac0d4d3ad632c6f4562357dbd8cfceb59f docs/operations/getmodelsresponse.mdx: id: acfd4707ddde last_write_checksum: sha1:0c0fb343b7965a76cc790355b7f43d1f52f13e89 @@ -6054,8 +6030,8 @@ trackedFiles: pristine_git_object: 67a37d54c875cac0897804741a900aacacd3ddca docs/operations/listbyokkeysrequest.mdx: id: 4e8166d10be3 - last_write_checksum: sha1:5eaf2c9cea4df88c16df3adb96b580a673490b67 - pristine_git_object: ed0a6574ed139fe227e45fb9e5d07bdf680afca7 + last_write_checksum: sha1:b677e49119e0c9d318bee611f024f663ba3d94c0 + pristine_git_object: 178868c31848afeb0542a999cc3f61b6fc0c503c docs/operations/listbyokkeysresponse.mdx: id: ad2f5a3c160a last_write_checksum: sha1:8496c7f3080cd0ec5a42401a6cccfbd1be87968d @@ -6070,8 +6046,8 @@ trackedFiles: pristine_git_object: fad77722bdedf3aa5902e0216dadbbbbb2331c66 docs/operations/listembeddingsmodelsrequest.mdx: id: 280530b63070 - last_write_checksum: sha1:f409c6a09dd308ffe3145b09b1115293c5c80862 - pristine_git_object: 7e491482186d8bd3a8b13797e591fc7128b5966d + last_write_checksum: sha1:25bbd6894644a8675906dc41777bbbdb4639c37b + pristine_git_object: ad3e91f1e3eadc3818e83e8999e13707dbc00a01 docs/operations/listembeddingsmodelsresponse.mdx: id: d07053bd83fc last_write_checksum: sha1:a80671cd7e9e2247b38a0c3f0c9fa1daf0080600 @@ -6086,8 +6062,8 @@ trackedFiles: pristine_git_object: ae60c3675f77fb7422e258682416dcb039a9c39f docs/operations/listendpointsresponse.mdx: id: 342e9c72ba2f - last_write_checksum: sha1:b398d996d1cb789b4e23ee19a90faef92ecd6570 - pristine_git_object: b3861b87c011781ff89d1e1ec9c9b603ca6c82cd + last_write_checksum: sha1:3d8f2863087c575eaa436b7a092454bf28ae3493 + pristine_git_object: f5f6478eab2bd96e7a5b810d456d01aa3611dde1 docs/operations/listendpointszdrglobals.mdx: id: 6ac5eadde8e5 last_write_checksum: sha1:c2de5b8884069ef0173168581bd0b6f7fc43fece @@ -6130,8 +6106,8 @@ trackedFiles: pristine_git_object: 8b06bf79ef0136eebd08247c5e107c36713d30fb docs/operations/listguardrailkeyassignmentsrequest.mdx: id: 1f3612aa11b1 - last_write_checksum: sha1:536f4de3aafe2825993ede03269fc2f81135733b - pristine_git_object: 92b4303d57d5a92d09eccebe89ce29cc42f31cb1 + last_write_checksum: sha1:2b24a89d5f5b4c0f724c791f99839208eed153ca + pristine_git_object: 0197e6a85d9a12b1d6df7a93c6a7610b1a0f1dfd docs/operations/listguardrailkeyassignmentsresponse.mdx: id: 5fdb6feb3568 last_write_checksum: sha1:45a796c2f1733cfd4c45730337bf19bd1b2fc4f2 @@ -6142,8 +6118,8 @@ trackedFiles: pristine_git_object: 98c69e74c27079bb78f0d089a3fd53ee31bb2109 docs/operations/listguardrailmemberassignmentsrequest.mdx: id: 1917e0e3a204 - last_write_checksum: sha1:dc5920b96cf681bd8796a98ad172d415d4b2e4b5 - pristine_git_object: 740af2e6f0a003b11757222108b4dae97aaffc7b + last_write_checksum: sha1:9315ec6976195ed3d2003f860b28c4c28a74e4e5 + pristine_git_object: c7d2bdab20db6f38fa9866b5b81f8a3678c61722 docs/operations/listguardrailmemberassignmentsresponse.mdx: id: 2ae2804974c3 last_write_checksum: sha1:0552cfa576c655c577099be969e31d51d1ac658a @@ -6154,8 +6130,8 @@ trackedFiles: pristine_git_object: 60d11dfac28f167fcd257a77239460b24687019f docs/operations/listguardrailsrequest.mdx: id: 99334b4d6619 - last_write_checksum: sha1:60fa8e18479e2995997fdb8c2e5dd0460179157e - pristine_git_object: 285cb55ce46435b741ac96d7f980a609067d432d + last_write_checksum: sha1:f5e1a0e5bec8fb875bc12f0c9362e059fb4a4cdd + pristine_git_object: 465dde596d2a5daa4d220bf9018e90ae74c05f2d docs/operations/listguardrailsresponse.mdx: id: b96388a22ab2 last_write_checksum: sha1:d2b73aa9c8f8f99290b92c0c891595ea01fab031 @@ -6182,8 +6158,8 @@ trackedFiles: pristine_git_object: a93efaec31ea64e16cf9a09ac88813f172ac9ba0 docs/operations/listkeyassignmentsrequest.mdx: id: 3732b309bffd - last_write_checksum: sha1:328ea504ac6b28ed54ac0cd6e79700da69bb7d55 - pristine_git_object: 449ce29f4869fdb1af34e99e17f84cd592ff0ac1 + last_write_checksum: sha1:08c28cb0e1013186d9f001654124aef44ef3b64a + pristine_git_object: 9ca68687511f46256c5ab42a335e00341e28dfe7 docs/operations/listkeyassignmentsresponse.mdx: id: 47ddfae598d1 last_write_checksum: sha1:db21c52900652875d2ac4874de342a3b84d9b4dc @@ -6194,8 +6170,8 @@ trackedFiles: pristine_git_object: e5d123af9bbfc77d33bb5d418f3a2d01aeaeac84 docs/operations/listmemberassignmentsrequest.mdx: id: eb73c6f654c5 - last_write_checksum: sha1:d4724280fcab63a4bb9bfc8fbc1edb4f7c5efe8f - pristine_git_object: c49bcf39eb18ce07fee487e245125c212804deaa + last_write_checksum: sha1:a1c4545240a1dd72f2aa171c8a3083937ff03b5a + pristine_git_object: 7215640eac1369915648e0a64c1aa702f7f645b1 docs/operations/listmemberassignmentsresponse.mdx: id: ec7bd9eaadcf last_write_checksum: sha1:594ec98db30067a16492c7ff17815ec332abeb8c @@ -6214,8 +6190,8 @@ trackedFiles: pristine_git_object: f0a800135df0c6e4799128a4fbc901c576c8c6ce docs/operations/listmodelsuserrequest.mdx: id: 01537864056e - last_write_checksum: sha1:45aab507978152748484ff6d2eb394570514f08c - pristine_git_object: ca39aeabcd71a18c6e29542ef9cde33fe6b77b33 + last_write_checksum: sha1:860605a95a465af148f71c6a1bd3de135092dd95 + pristine_git_object: 5e2917bd45a55ce6eea3bf36be5ebd33e9d6ea17 docs/operations/listmodelsuserresponse.mdx: id: 34f7a1648ceb last_write_checksum: sha1:bf1ee4a9b2ad707ff1c39ea8680e72e5d0c27b9a @@ -6230,8 +6206,8 @@ trackedFiles: pristine_git_object: 40271fec1ebd01d287c48136738911b6d1a09349 docs/operations/listobservabilitydestinationsrequest.mdx: id: 0ab2d0dfb05b - last_write_checksum: sha1:5692febdcbe15275ab90bc9a29e9a51916c710c8 - pristine_git_object: c9f43abca5b0e275fbe27f254af681b80b77a88d + last_write_checksum: sha1:e9485a26bab15b3e790311176ebde4fcbeca85c5 + pristine_git_object: 939ce50afe886df24246d91e5a037677042f06a2 docs/operations/listobservabilitydestinationsresponse.mdx: id: 7da9d153805e last_write_checksum: sha1:d24fd1ff10e5422270e71b6a89f71cd1da952d59 @@ -6246,8 +6222,8 @@ trackedFiles: pristine_git_object: de31dc7f59ad20233f8c5de6f83a8b5b7fa2226b docs/operations/listorganizationmembersrequest.mdx: id: 080ced0e9b96 - last_write_checksum: sha1:3e75ad238a52eccb68fdde21a7404ead101f2ab6 - pristine_git_object: 8e2a8b90c065f170c41ccc6c43ae30985b005a80 + last_write_checksum: sha1:f9e57431a4e34b30fc647e473e3a0ecea0f09fcd + pristine_git_object: b9c2c5a33662eabe7ea4699f740618415d45c7a9 docs/operations/listorganizationmembersresponse.mdx: id: b2f1b50be996 last_write_checksum: sha1:40541c03ce17f8ef0abb6e7108524d269559c7eb @@ -6262,8 +6238,8 @@ trackedFiles: pristine_git_object: 73d98355a657b6bdfff959896d52e81dcf1db355 docs/operations/listpresetsrequest.mdx: id: e346ae8fa12f - last_write_checksum: sha1:a10c2669c9ed7c8cddae336edfb9810340755f7d - pristine_git_object: 165dbf2fb5db115c3f5696f0ae53d7341669bf0f + last_write_checksum: sha1:75d9563246b1ed7e0e7304fcecc9349dad5cf6dd + pristine_git_object: d3f380a31eaf2eafb589098493d00bec2460c1d4 docs/operations/listpresetsresponse.mdx: id: 70641d06b5cb last_write_checksum: sha1:03ffba5a51581e31fe17f2cd32e5a1a0227b14e6 @@ -6274,8 +6250,8 @@ trackedFiles: pristine_git_object: f97938ef045d215a2b32a571bcb1e62f086c85e3 docs/operations/listpresetversionsrequest.mdx: id: 3ec15e417b29 - last_write_checksum: sha1:6f9af524a7a4cab53fd6fb1e47620309ed8d184e - pristine_git_object: 268fd9aa1d4e47013752ee851e0b527da1fd0893 + last_write_checksum: sha1:0460661fdf521385490bf204af2e3c1f358cd0f5 + pristine_git_object: f33507722d6556b113bbff144981857e7f849ea9 docs/operations/listpresetversionsresponse.mdx: id: b6ecb3a03b2b last_write_checksum: sha1:e44b07ff960b84e2b48a81627b4b90e1de10a52d @@ -6298,8 +6274,8 @@ trackedFiles: pristine_git_object: 81b20bf491669a461e81d96ad4c5a4c6eebd046d docs/operations/listrequest.mdx: id: 2652e61cd671 - last_write_checksum: sha1:3f45b1614330e8e7ef7f0dbd58e898d544b09e93 - pristine_git_object: a48f6951d5b0e38eb791959348f76e1741e55cf9 + last_write_checksum: sha1:aef0102dc11da7e0269ccf5ef8cea1ee2613a1fb + pristine_git_object: 8e774abd85f6e985df97b1292dae0504b1bf4691 docs/operations/listresponse.mdx: id: 0fbda0f81ae8 last_write_checksum: sha1:ba97d1d6ae126c3e7a0e28d800705847377d2e86 @@ -6334,8 +6310,8 @@ trackedFiles: pristine_git_object: c8f845c5520b7d515548724e90034eec4e2989f5 docs/operations/listworkspacemembersrequest.mdx: id: 094a5435a3a6 - last_write_checksum: sha1:655363c94d19fee214f5ca0283f5f8e4c2c10ddd - pristine_git_object: fe553b32e8a2e665d7f60820017710b9d1d1e759 + last_write_checksum: sha1:9db27fafe29c97964c1d179a2b3447e1d2e3da46 + pristine_git_object: 0c97c81ea6c9df49bda52fe3fc3c6c8a40cdccea docs/operations/listworkspacemembersresponse.mdx: id: 1ea6e450f1db last_write_checksum: sha1:69a0763e6d3816274d51b825514ec38b637a0312 @@ -6346,8 +6322,8 @@ trackedFiles: pristine_git_object: 2a6be98ca184850ec13cade870ad4f4227b4ecee docs/operations/listworkspacesrequest.mdx: id: ecae2cf14ea8 - last_write_checksum: sha1:a4f6b770fbad23c6a5c3e467a914e7c0351ffa05 - pristine_git_object: b188a1a7101520b470b9ad831ce034ae815ad2bf + last_write_checksum: sha1:3960ecca50aa7a770e1bd354ef3783719a1e0f26 + pristine_git_object: 0903d08e14ec2f3f3f2ab8668daa99cb32a638c2 docs/operations/listworkspacesresponse.mdx: id: 9c0a0733f9d1 last_write_checksum: sha1:221d74185d13f295869a041f5738375c7be31a23 @@ -6394,8 +6370,8 @@ trackedFiles: pristine_git_object: 0f0b54e43577a8a835cd971f82e48c3921e3d88e docs/operations/provider.mdx: id: c75b3bbeeaa0 - last_write_checksum: sha1:7d36928b3ee174aaeb718c0d73037e0d80c6fc69 - pristine_git_object: 9d859c1bd512608c4ee16b1c404f81f0c6f39773 + last_write_checksum: sha1:3bab794d2b3f7f6d0405de604f55c33606c6a2aa + pristine_git_object: bd7ec3fd662bff29e58367ac7ca98e4ac60e3ba0 docs/operations/queryanalyticsdata1.mdx: id: 0e41beea77d0 last_write_checksum: sha1:f9a349b4fee07f786180e94b45f92002bfae0e56 @@ -6602,8 +6578,8 @@ trackedFiles: pristine_git_object: 4e5df61630ce21da071bcc35a50a8cca491d6e4f docs/sdks/apikeys/README.mdx: id: 27fcaae1c346 - last_write_checksum: sha1:cf0d94f5457263da55ad5b310c06473db4f5ae80 - pristine_git_object: e5b775ce85d6766e7213de36d4f917892687e9e6 + last_write_checksum: sha1:f9cdf4bb1df96dbdf3f53715afdb50eba53987fa + pristine_git_object: f741a3265276750fbc01b9740977d56066ef9016 docs/sdks/benchmarks/README.mdx: id: 5b483a6770ba last_write_checksum: sha1:580442b871377a1d5191d9d3d1f30b20667115fe @@ -6614,12 +6590,12 @@ trackedFiles: pristine_git_object: 6e4b06ff97f02da5d31d78f478094db32dfdaa6f docs/sdks/byok/README.mdx: id: 17792f3b180d - last_write_checksum: sha1:17ebad0d042bd205530b527caf71c33d248ac5c7 - pristine_git_object: 513bb72efe9f74672b1b60d6b45dc0aca282ddf6 + last_write_checksum: sha1:ef3255b140cd84373866d15321ea04e205b99c35 + pristine_git_object: e813aadac9a310cfbe0da371716b17181121f55f docs/sdks/chat/README.mdx: id: 1dd859c23fe1 - last_write_checksum: sha1:ba43c2aeeb52b55b80e61d17c2fce04c1c476044 - pristine_git_object: ca7fbe9c061e2f7f36724e9889bfa8595b9f23f7 + last_write_checksum: sha1:d8714b18af250e3d59ad005b9de2fa1aa3f47463 + pristine_git_object: a5130d1d74a53130f0fa935dd04c609d4d95ce12 docs/sdks/classifications/README.mdx: id: 4786130ef02a last_write_checksum: sha1:87ea3518b4147ae7833b01da7be92d41a4b49df7 @@ -6630,12 +6606,12 @@ trackedFiles: pristine_git_object: 414ae2830c58add7ad904cc9ffc5b46ed65058df docs/sdks/datasets/README.mdx: id: 15e5ab0183de - last_write_checksum: sha1:f716eecbda6e252e092fd559e4c68778b551d5c8 - pristine_git_object: ef43241cee60a329848e01772031d3f97e0f0d30 + last_write_checksum: sha1:ea0bec2975d9b64dea2d22a2851c35880532cd3f + pristine_git_object: fe3a93c6cff82a397a3c26811e6cbd7a681bb489 docs/sdks/embeddings/README.mdx: id: cd71581df291 - last_write_checksum: sha1:6327ec4cf4aa480bbbf6eea9c8b54713e46a7db1 - pristine_git_object: 0ec380e6de0a439e80527b502d78d90963d8671b + last_write_checksum: sha1:810a851cac701dfa79d8130a38396d0a1b8b5196 + pristine_git_object: 23ecba4f6c3e02d44d684e15fb91cae66e043d12 docs/sdks/endpoints/README.mdx: id: 62dfac9f7b71 last_write_checksum: sha1:05fc24509aa174b336fbe7d1a95faf7beca9bca3 @@ -6650,32 +6626,32 @@ trackedFiles: pristine_git_object: f262b34982a18293f5ae22bfbbf385010bfcdc9c docs/sdks/guardrails/README.mdx: id: a0cd4218b8fa - last_write_checksum: sha1:a559f40ebf9b9f04680cc87be4aebfef34bbb6dd - pristine_git_object: db67983c1b2386a3ed60fb23a1610faca0785d69 + last_write_checksum: sha1:0bd55d09aafcf999783a1d433dcb4f3273831a18 + pristine_git_object: b24fc1614a849b48277db5b8a2adf6a4c2651db3 docs/sdks/images/README.mdx: id: 534a6c102c4f last_write_checksum: sha1:1c0a9c704bdd9090f5a0a74f4d9ae0c4360707bb pristine_git_object: 4b3508543942b711f2d74df5436748e1815619e2 docs/sdks/models/README.mdx: id: 58f1ca464e0b - last_write_checksum: sha1:90e4f262bc449464226d1d83c731709e3352bbb1 - pristine_git_object: dd4b54253703029cfcc99203de65731b350e49b7 + last_write_checksum: sha1:a7cd860f6584167c804ba660bd0880c7b5f87dfd + pristine_git_object: ef07349c53828a05f66f67a708e27ef6f71908d9 docs/sdks/oauth/README.mdx: id: 42b5079343d2 last_write_checksum: sha1:60ecae1338bc4487fbb050b6044ddc08dd7d1685 pristine_git_object: c8f7dfd9fd46b60a5814250f8cb2de313166e2c3 docs/sdks/observability/README.mdx: id: 75811527e651 - last_write_checksum: sha1:e0d3c0963d72b6c982ec2164d3b38ed7f42ccfc5 - pristine_git_object: fb37fc078d177af746a8d20d989cddd4ab24aa8f + last_write_checksum: sha1:165808ebbc4b2513862032852233adb6f5ee336d + pristine_git_object: 6a36341f9157463e34d7bf6dc98edb1739afad95 docs/sdks/organization/README.mdx: id: f41b85542db0 - last_write_checksum: sha1:7bb8e127781511bb01ce8b610084674f56e1ca00 - pristine_git_object: 32a291cb837977e7cdd475c664e5d475660b2ba3 + last_write_checksum: sha1:3d384483978c2c141bc145ac7bf9d8b1a4120593 + pristine_git_object: e45eea9aea2f1a8c6ec83a496b844524f17cae00 docs/sdks/presets/README.mdx: id: eeb505928d52 - last_write_checksum: sha1:9ee5f30be4d1bbfc5afe4070e54d064e87142b8c - pristine_git_object: 5b346949164adf937692071fe12cbe0ba13cee51 + last_write_checksum: sha1:7d9040124ce07bada157c730fc27407a75bdd8c7 + pristine_git_object: 530e9313f009582c56b8db864d1da79d8c3c4a8e docs/sdks/providers/README.mdx: id: 5ea9af111324 last_write_checksum: sha1:570b55655ee7602d3807c3218e450741f634eed6 @@ -6686,8 +6662,8 @@ trackedFiles: pristine_git_object: cd1b341b1b7c0284b9ba9b102bd8020e0d7ce707 docs/sdks/responses/README.mdx: id: abab319e080e - last_write_checksum: sha1:65d4293956f3ae2610d9cc54f436c5386df0eac8 - pristine_git_object: 904dafb220339d54a25818aeef9ac8f6fad30643 + last_write_checksum: sha1:9bebe8e9c07e478df21e15a391828f2192268ebc + pristine_git_object: e0932dbcefac1d1efa11b36afac7794683ae08f3 docs/sdks/stt/README.mdx: id: 190b0dc9a5d1 last_write_checksum: sha1:a8e68ac2b0bb8640e01d962177b42ab47b24898b @@ -6702,16 +6678,16 @@ trackedFiles: pristine_git_object: 429ca7dad6a66516aec6bb1e674af1e09dc42dd5 docs/sdks/workspaces/README.mdx: id: 0c75d023ef6b - last_write_checksum: sha1:177cf8e7c0b14f92eadee9e7fbd1282ed6c8f679 - pristine_git_object: 0c43dff087b5657ea22168564472c35b7e81d63d + last_write_checksum: sha1:8b975e8f6d2bcf234b67c5a40dddffdb0cb2181a + pristine_git_object: 137da1dc481eccca4da9447da0fdbd076cb998e0 py.typed: id: 258c3ed47ae4 last_write_checksum: sha1:8efc425ffe830805ffcc0f3055871bdcdc542c60 pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544 pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:86225e15f1a59cf0075ae63599330ebf409b363f - pristine_git_object: 6c72c41e350d85f96f03c280d33ec7ac92a74aa2 + last_write_checksum: sha1:69a8177dec61e251312345fdd0b1ad7e0e58ed7b + pristine_git_object: fdc023cd07a203ba786d079f1017261293e9f51c scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:77f44b60b98bc126557ec27391f91dfba764bb54 @@ -6738,16 +6714,16 @@ trackedFiles: pristine_git_object: 86713cfea633e09d33b3d4e65281071fe20e6137 src/openrouter/_version.py: id: d8d15ad6c586 - last_write_checksum: sha1:5664b5b08a8cbf67d5013453e4798a67852edfb7 - pristine_git_object: 20de112cf5ad27b573999ac612dc447b08180f5c + last_write_checksum: sha1:7682f73c786562798d5810ff7b3de7d39435f42b + pristine_git_object: 243368c88e9f460e17730c69426e5124382aa128 src/openrouter/analytics.py: id: cb406b5aaabb last_write_checksum: sha1:9e709b71dd0611056dc0cec6150b578defe32841 pristine_git_object: ddb44a129e8f45e7524fe5615a23f1ccc70bbe71 src/openrouter/api_keys.py: id: 876fac88fff6 - last_write_checksum: sha1:3148f6ca155d917643f21e9e505f3f478d79b464 - pristine_git_object: 76eafbc60f7d5375ff4d4199ad90cd5d8f93e3e0 + last_write_checksum: sha1:2553ca36bd8465991f00b9b65317244b7444ab83 + pristine_git_object: 09084e39118b774fecf211ff5af0c56ad93761f9 src/openrouter/basesdk.py: id: c5733c5a1e12 last_write_checksum: sha1:65769ff2cb5473f85b364c6213a0ddc8c68644ea @@ -6766,8 +6742,8 @@ trackedFiles: pristine_git_object: 1b01f0c081ffc8a42fa56d335f95ec3121e4b5e6 src/openrouter/byok.py: id: bec352462ae1 - last_write_checksum: sha1:d812981f845cfc7313a86be8eecca156969ca0a0 - pristine_git_object: 08b177b0b39e7f3581f1a5da13e245c3daddf9d5 + last_write_checksum: sha1:8440c0d936757b90fb3eca91193a26a8de3d4f32 + pristine_git_object: 213f83f9ea7dc942bdd3b960c1f2ba36a6181d70 src/openrouter/chat.py: id: 723fdce15c1d last_write_checksum: sha1:1497d43947fc61b2d8dbe0b609f82475141357b0 @@ -6778,8 +6754,8 @@ trackedFiles: pristine_git_object: ad3d247954547814054c01989a2dff3d12b3e4e1 src/openrouter/components/__init__.py: id: 81754e97b3f4 - last_write_checksum: sha1:75da595e5ef0b716059727c18f75cb797eafae31 - pristine_git_object: feb8172376424273e38f7f6940af9ceff2106f38 + last_write_checksum: sha1:07b9aeff1106305dd79e6fb4dbaf972eac3f4fae + pristine_git_object: 0e0ce5441a9ecf21d7fe17c3cc20d57b1581aadf src/openrouter/components/aabenchmarkentry.py: id: e2e0f0b48c82 last_write_checksum: sha1:fab4d9a24d2cea937bb749d46c5f83941e99d65c @@ -6794,12 +6770,12 @@ trackedFiles: pristine_git_object: 1138e6f6bc025546a86877749ce83aca4c46499a src/openrouter/components/additionaltoolsitem.py: id: 2761ab789f41 - last_write_checksum: sha1:a38a32bb7c6ea9e99edcaff98825778225092fee - pristine_git_object: 04a1bdb7635a83e6c8a41cb02858b03a9f26688a + last_write_checksum: sha1:80488ef84b869dc9d564b23a3e7b34c4d5a466d4 + pristine_git_object: 2cef174af8ac4a32498556307acc43d908dddf7e src/openrouter/components/advisornestedtool.py: id: 768fcc6bad2b - last_write_checksum: sha1:9c4303eb7fbefd1d7200cd588e7ab7e55db791e8 - pristine_git_object: b661de1ec0b9a84d331d254e9f63656229d3f2ec + last_write_checksum: sha1:23f5831fd27a32345fb4e50c1406df0510b0bf47 + pristine_git_object: 23e5798c1057c478480a96f1cc09bebc6ca10836 src/openrouter/components/advisorreasoning.py: id: d5af5c19fc73 last_write_checksum: sha1:0fd32e4ff2d89f7cea861d6e691e82a7e1ff62f2 @@ -6814,8 +6790,8 @@ trackedFiles: pristine_git_object: d92e19f8e9bec36933cd3e5d7ccc1690f14b168f src/openrouter/components/agentmessageitem.py: id: 6dbe0c8e2c79 - last_write_checksum: sha1:cdc92eac94cf3a35a412c95f894345c7a362afeb - pristine_git_object: 612d33983cd731ce83f33949fb2e9ab05b89f43b + last_write_checksum: sha1:475390ec86c90a835bb2f7a1d256d6b03acbbfd5 + pristine_git_object: 87dbb8cdeb74d04a1fd0133689bf948be74c04bd src/openrouter/components/annotationaddedevent.py: id: dc032c9ad744 last_write_checksum: sha1:8e5d49d2b57114df7f4559b611d40769e65f9f78 @@ -7030,16 +7006,16 @@ trackedFiles: pristine_git_object: 64a0715572155d0eb3bd297b886670e97837c843 src/openrouter/components/badgatewayresponseerrordata.py: id: f7a33d30d269 - last_write_checksum: sha1:10101bc2689deb825e4d679096376666c6094ef5 - pristine_git_object: 08905537423555f6dcfe5325d62cdf371b3035f9 + last_write_checksum: sha1:d85ab25a06594703cb353767f07f4e1d44e0181c + pristine_git_object: 5c0e65ef8eeafd35cf26ba9a56010dfe369dd8b1 src/openrouter/components/badrequestresponseerrordata.py: id: 8a9249ed4bdc - last_write_checksum: sha1:50745795ab618b1720cddd1e596bfd96e99eba4a - pristine_git_object: c59b958cb34640b4cc6329be5154480e4116929f + last_write_checksum: sha1:58924a548d592ba9efc3f70d64c640c431c9ff49 + pristine_git_object: 22d2676287644ab6d848a02c1e3b9599b89f4301 src/openrouter/components/baseinputs_union.py: id: d85e19ff642b - last_write_checksum: sha1:ef1fd31c14b1d9ee88ce2a927e4d68c199d5dce0 - pristine_git_object: f662ef47202e2685b0342486507c31ef27341c8d + last_write_checksum: sha1:ed5b32cd70b6b800b6f97e490fe969bf3fd461a9 + pristine_git_object: 34d15072cb788b2d19f6241fc2febabef73b92fe src/openrouter/components/basereasoningconfig.py: id: 8bd09a7e873a last_write_checksum: sha1:db86178d4a8ebbd0279ba6107b9ae8a6eafa1c44 @@ -7118,8 +7094,8 @@ trackedFiles: pristine_git_object: 47ef267b5e0f7b615b0cd66018728e3f47440a66 src/openrouter/components/byokproviderslug.py: id: 6738a8516caf - last_write_checksum: sha1:8a0139a219dbbe01d7e7d0455f2fefbf0b685b7e - pristine_git_object: 09feb9350d812ef14905a003d9623374cb254b63 + last_write_checksum: sha1:44997a480291aa5bee678ffbb98f6bb3bbcf21ff + pristine_git_object: ae5da1933d48f1c1b038eaf6321f55297a7a8496 src/openrouter/components/capabilitydescriptor.py: id: 368790a86f10 last_write_checksum: sha1:a167551924ee82b4b5876a0ab698a45fe8c87a95 @@ -7130,8 +7106,8 @@ trackedFiles: pristine_git_object: c7866f6fa8967c301f6aa11b0b0431384ab79556 src/openrouter/components/chatassistantmessage.py: id: 16355b51794d - last_write_checksum: sha1:dc84d9b000613474d9cdd0a9851fd16f105252b8 - pristine_git_object: f000d9086ad3ff80dfb47d1c4da15c745849f10e + last_write_checksum: sha1:28fcb03173b448157e39959b0065290baab2803b + pristine_git_object: 3caa2f311c18889db095a9285308e8a2be2c7e31 src/openrouter/components/chataudiooutput.py: id: 99984fd282ee last_write_checksum: sha1:d2f5aacb72a261437e357c10e5bd6af16cb61323 @@ -7206,12 +7182,12 @@ trackedFiles: pristine_git_object: 7a6140f2b8afb0cde9b031322a4284c9cbce7e33 src/openrouter/components/chatfunctiontool.py: id: 1fcf92f8a7da - last_write_checksum: sha1:bd0f773ec2135cbfdffb56db092587410c7e5daf - pristine_git_object: 69f8f1c4be7afa41b812c012d3cf1b0906efcf1b + last_write_checksum: sha1:56341e68cb4bc510a271902fb016b70a95de0406 + pristine_git_object: ddb73f3a141a72fbcf7d50554648b3a73e4e8e13 src/openrouter/components/chatjsonschemaconfig.py: id: d2278e414fab - last_write_checksum: sha1:73791c8aa5f3dec4a25903dcc9c61118fc88a4f3 - pristine_git_object: 4b3aa418ffaa0a13a57301e54c932fc158c376f7 + last_write_checksum: sha1:ed4b15401f79dacef16a08e637352cb4d56c4cfe + pristine_git_object: b3953ee5aec2abda9ca0db2e9e4e010b29a22392 src/openrouter/components/chatmessages.py: id: 3425ec393ea1 last_write_checksum: sha1:e5a58c98ecacc9b4c72a147c458532cc78a7d898 @@ -7226,8 +7202,8 @@ trackedFiles: pristine_git_object: 8bbde153b53887e426989fd5b0486b6dc1122810 src/openrouter/components/chatrequest.py: id: 5e39eaefa9cf - last_write_checksum: sha1:640ab02fe305afc8fbebb4ee07c4c565bd056b63 - pristine_git_object: 32906484abc18187393231ac1ccc5839d8116636 + last_write_checksum: sha1:f2109212b68e692918dc3a68c8e6b16457b3c066 + pristine_git_object: 4d1c948ef6a1c79406cee0da0f5770df6cc89ada src/openrouter/components/chatresult.py: id: 9062fe2935fe last_write_checksum: sha1:2ff1963c54e7e79500115c8549c8d395f4e336d1 @@ -7310,20 +7286,20 @@ trackedFiles: pristine_git_object: ea86f79f7e10d7584621fb804ac56e7bb79578ba src/openrouter/components/compactionitem.py: id: f1535c3a68c3 - last_write_checksum: sha1:877b1856696c67229c1f0bc9c39e98d79c11120f - pristine_git_object: fd2fa67f5ed2630c005e33123ec291065ee5b6ff + last_write_checksum: sha1:b00817cc2d5ed1b1ea6762dd851d4bd659aff8a5 + pristine_git_object: 6149d001229f241bba774f53b1a374eb0adc553b src/openrouter/components/compoundfilter.py: id: 0cab72c7a3bc - last_write_checksum: sha1:7bc0251dcf6c06f0fd00c9cadee2fa6a1e88ea82 - pristine_git_object: c80781ee2b1d3f3f7e2b0063b0fbfd16937039ac + last_write_checksum: sha1:bcd75c483c9e86c1061a601a3a1e1ebc29863bf0 + pristine_git_object: f6386f18dfaf8a2bb9a317a0f8401e41e561a350 src/openrouter/components/computeruseservertool.py: id: 10d96ee539dc last_write_checksum: sha1:ae5e0b764f246b7d8c65598cdd788cb890a8bdc4 pristine_git_object: f8c70070d4069fcb7ad697a1d1012ea0a95c1a02 src/openrouter/components/conflictresponseerrordata.py: id: 212cdf3bcdda - last_write_checksum: sha1:95dd7cb791476d2d2481760f73aa5186a3a0a4a1 - pristine_git_object: 39276ad8ec6b05029b36b32fab7a81befdff85eb + last_write_checksum: sha1:76d00a8efbfe982b678e29edf487f7a620b5f58a + pristine_git_object: c5b073593a00002f60feb94eccc8e42be28282c3 src/openrouter/components/containerautoenvironment.py: id: 0c41c2609d28 last_write_checksum: sha1:d6b8b06b51d5f0ffc28b1644843a8fa8a576d31b @@ -7390,8 +7366,8 @@ trackedFiles: pristine_git_object: 50bdff02f1430696b08d5bb5dc38ba67704dad61 src/openrouter/components/contextcompactionitem.py: id: 0212b34610c0 - last_write_checksum: sha1:e4f65d722d166d4818afffe5a4d2e2756b810dba - pristine_git_object: 591e51c49354f87abbaaa20e6b7d9bdb10a2be69 + last_write_checksum: sha1:9f064d295f28caf579ec278cf16318640fb7f9c9 + pristine_git_object: 6ec9c2ba8c3201b3674b4003241b02c8123fe807 src/openrouter/components/contextcompressionengine.py: id: a3965275d07f last_write_checksum: sha1:8aeacab427a9277db44ef731fd7a38a58752a64f @@ -7422,8 +7398,8 @@ trackedFiles: pristine_git_object: d6c4a4dc73222668daddc2a1788d314ff30e8fe6 src/openrouter/components/createobservabilitydestinationrequest.py: id: 58587fb98a32 - last_write_checksum: sha1:a69652cab8079b002fdcdfd8a3de2d5da4ed2677 - pristine_git_object: 6cd46b4fb85e986a1b54f89e5983a3a0d53b837e + last_write_checksum: sha1:027005213cc1f3cbaef6c17bd51076f0f1cdca20 + pristine_git_object: ad54eb7ac853549861c5cc2f671afe48a941fcc6 src/openrouter/components/createobservabilitydestinationresponse.py: id: 9a8561661e52 last_write_checksum: sha1:730054c12ad209d5f83b88825c946fd6f322e6e9 @@ -7474,8 +7450,8 @@ trackedFiles: pristine_git_object: 0858da197cbf8f41d4df6688a392eaca783a8700 src/openrouter/components/debugevent.py: id: 5ecad6212326 - last_write_checksum: sha1:47eb04a24ca8c2c28bd554b1967cc1ffc35169a1 - pristine_git_object: 3346002a864567eb5d6b0601b4851c4190db64fb + last_write_checksum: sha1:e83da36b6ccf9401789c28b8056701b5f0cb6f68 + pristine_git_object: dd463df81262f2fe4b51b33c9dde998e435f03c2 src/openrouter/components/defaultparameters.py: id: 548f4f885c22 last_write_checksum: sha1:b4441a938ceb4511d0207256d0cfed6ca6d9ed4d @@ -7502,12 +7478,12 @@ trackedFiles: pristine_git_object: 708dfac62530c5fcd29f6bb0be113dc34fd24718 src/openrouter/components/easyinputmessage.py: id: 72619a312585 - last_write_checksum: sha1:d239d7043ffc81d1fa3ec0779f6170f3d494a8f6 - pristine_git_object: 814efc2c2b79781d126d77e0d7fda85dcae7608f + last_write_checksum: sha1:cfd2576c0fc43b9b6f07228e4d5c37602f765cc5 + pristine_git_object: 7a92038fdc99c33389ec617eca08a2c687bc0e4c src/openrouter/components/edgenetworktimeoutresponseerrordata.py: id: dc53aae5b171 - last_write_checksum: sha1:cfbbb83051f349bedda3d81a81ef2d3aea2916d6 - pristine_git_object: 9e421b3c133cc1ad340ec2eff50e1b9b8d8750bc + last_write_checksum: sha1:44373dac3bf06bd752f0c54122949a024f70d3b5 + pristine_git_object: 43ddb3328699a301a8948743ac0ead4a4a8ec776 src/openrouter/components/endpointinfo.py: id: ce049670b5ae last_write_checksum: sha1:914f173c73fe1035e56c9acf4ad9e23555bde95a @@ -7554,8 +7530,8 @@ trackedFiles: pristine_git_object: fc29881e08f5804dd5ba0ab66572d6c74f83e0c4 src/openrouter/components/filesearchservertool.py: id: 8ecc4d4a0ddd - last_write_checksum: sha1:f6de01b0ed57b987896035e7e21681ca7fe7f1f8 - pristine_git_object: 5f5b45a9f0fc9dc42d1ebde7ac80354be5f0b2bf + last_write_checksum: sha1:0cb000d6cf7ce3680e33fa9ae92deb4ca91a120f + pristine_git_object: 63a4322eb168678e2eca0c9a25c45353335f03e6 src/openrouter/components/filesservertool.py: id: 725f58d5d419 last_write_checksum: sha1:ea2af05c4a8f992c2edeab81e6ca4279b4978010 @@ -7566,16 +7542,16 @@ trackedFiles: pristine_git_object: bca5442a696e2489662d71d5bd7e26fb4c0eaeaa src/openrouter/components/forbiddenresponseerrordata.py: id: 93ae47a0c337 - last_write_checksum: sha1:1da3bc6a3399aa3539b27e96c400b23bb6fd188f - pristine_git_object: e790a632c692a86ef53ec0bb8d4fd41e99d4efd1 + last_write_checksum: sha1:9774f106ede3b1d9f74fbe301d820f0602a041d9 + pristine_git_object: 6b6c15a64fae29bf263a84f458f41b83f56f9334 src/openrouter/components/formatjsonobjectconfig.py: id: 4b0126b22c9f last_write_checksum: sha1:9a42065639d0380af14f787748916a8ebb458599 pristine_git_object: a530b83d7202df8626a379619592e71c964eabf8 src/openrouter/components/formatjsonschemaconfig.py: id: 93c37c13510f - last_write_checksum: sha1:290254893b21e72fa2735ed761b21d062f3b49bd - pristine_git_object: f748cc223bfa2ce5c63917c9343265c69ebcf749 + last_write_checksum: sha1:0145b332eea451bedf8249cf4c870a19bab06107 + pristine_git_object: cb370d92a95d08b1f7f9dc6c000c843aec616adf src/openrouter/components/formats.py: id: 26f57c67a9d5 last_write_checksum: sha1:b8d471e2e143264746f23bca1dfc12342d3f6577 @@ -7602,8 +7578,8 @@ trackedFiles: pristine_git_object: 8d9002fa30aea04624c233b970eb36001a764f40 src/openrouter/components/functioncalloutputitem.py: id: bf659aa04e7d - last_write_checksum: sha1:006096fba13309e9a89538fff78282c9766367dc - pristine_git_object: 0f61f4d39093773a2106f60211a1413ad0d001fb + last_write_checksum: sha1:0100d1d3b565d9701635773fe6c5f2fcbadb1353 + pristine_git_object: 5a290e0b17b588c58fc73ff77b95bc38fac2245f src/openrouter/components/fusionanalysisresult.py: id: 8c88c59e344e last_write_checksum: sha1:d1ca69c25b7e3ad67b93d94853e2054ed5e0258c @@ -7646,24 +7622,24 @@ trackedFiles: pristine_git_object: 2836ce37ac58b2b90568bbd6247fa52b982ef131 src/openrouter/components/fusionplugin.py: id: c0b307f15bb0 - last_write_checksum: sha1:32d5b66ef009951e271bbb65455346bd6d090b8d - pristine_git_object: c04ecdcae607f61c7e2b4f5a1be03501cd53b011 + last_write_checksum: sha1:567325a085e7346e160a8df3b882097aaede2777 + pristine_git_object: 7ef18fda85990e3991922d073228970c2b7a8a65 src/openrouter/components/fusionservertool_openrouter.py: id: a1d6d3aefe6f last_write_checksum: sha1:5946f3beb667144593dfb06796f51995ce8140ad pristine_git_object: 0015e263bbb2d817af89780610cc8f25ff852e73 src/openrouter/components/fusionservertoolconfig.py: id: 0d1d229c531f - last_write_checksum: sha1:ee754be65e6d2a35ed3f1f3985a0c3600116a6d0 - pristine_git_object: f7377d2de6c4e6129e8c7f9916200a06ae862afa + last_write_checksum: sha1:682c03ac94460a8da295986f442f598f97c2aa39 + pristine_git_object: 4426b5b37de4f24d28bfa779acdab59ff248327a src/openrouter/components/fusionsource.py: id: ce20a4a9f32f last_write_checksum: sha1:2141dd1dd9396035bf8070878c9ec945331514c8 pristine_git_object: c60f29915ce3fed38a693d10b8c2de868f8ee728 src/openrouter/components/generationcontentdata.py: id: 0140215b5b46 - last_write_checksum: sha1:03d676ea95b0ac1d6e0f8e036c4e1c028fc540ad - pristine_git_object: 2005a3b5a63bd66175dbfdb93bf58e5c1d6cb0e8 + last_write_checksum: sha1:8f0b1104c944ce96fa078baf47dfd9d040828c77 + pristine_git_object: 5a777789d3ddd89f39a889cd38b3abed8af6149b src/openrouter/components/generationcontentresponse.py: id: c3f3f745a193 last_write_checksum: sha1:0a87a329f4b565c773d730ddc74595c6a0d64ddc @@ -7706,8 +7682,8 @@ trackedFiles: pristine_git_object: 9cdf08ab3c380a8ea69b5884bcd40a09464589c6 src/openrouter/components/imageconfig.py: id: 674f6eca2929 - last_write_checksum: sha1:8eaffb70806c74b1111b377b0024375f3c80ef44 - pristine_git_object: d24d5e2bf337e19bb80a1aa24b8b27c93d67f1b1 + last_write_checksum: sha1:184975ccbb32091fb1c60723c6bbb3abb51d11bd + pristine_git_object: 62c61b3a14000361f8a47e6f7aafb53cbdedc081 src/openrouter/components/imageendpoint.py: id: 6466b0bedef0 last_write_checksum: sha1:631323f2b22eab12462b5951c1f07cea65fa20d8 @@ -7734,8 +7710,8 @@ trackedFiles: pristine_git_object: 6b9a8990973466285f9b49b366bbc5fc1ae42e41 src/openrouter/components/imagegenerationproviderpreferences.py: id: 100a82a54e2d - last_write_checksum: sha1:6c6dd744f3cbac596e4db7d544e9acc628ed85ea - pristine_git_object: 15f024e91c792db174ac0acc0facfbc59606031f + last_write_checksum: sha1:3fa3f760132d16c3f73075e6b666e95752f5cf52 + pristine_git_object: c2d2bd05e665240a7307a4cf6b89b6ffedaaa80b src/openrouter/components/imagegenerationrequest.py: id: f8291a7be9a0 last_write_checksum: sha1:48a9640c0b9f48833d5514c7671bfa4b76aac776 @@ -7758,8 +7734,8 @@ trackedFiles: pristine_git_object: 2458156e5adc142fc2eb8bb438f0ef4410c40ae7 src/openrouter/components/imagegenerationservertoolconfig_union.py: id: d1c630a1476a - last_write_checksum: sha1:50d45b5a787e8cc9024c05b31e4113993ffe4038 - pristine_git_object: 58280b9d80d3dce4430060fd94ad719b47a92f9c + last_write_checksum: sha1:a22b416940108c002ffa31baa5705d6032d0987d + pristine_git_object: 29300b7717748705c8a63a96a7711c843095f6b3 src/openrouter/components/imagegenerationstatus.py: id: f257690edb46 last_write_checksum: sha1:8ae33e94dc42144f3269a65834ed7d59aeab3c69 @@ -7842,8 +7818,8 @@ trackedFiles: pristine_git_object: a3d84a96f4553a320f5eee5d63f6bc5c244ab446 src/openrouter/components/inputs_union.py: id: 17d6239cb6a7 - last_write_checksum: sha1:8f82753fd340ed60d3314a63e913500c3281d686 - pristine_git_object: 39681f4c16af7831a14dcccf7447e742c8a2b43b + last_write_checksum: sha1:bc4c9ad744a2bc44a02084031ddbf3b4fcade904 + pristine_git_object: e0fac2909e5ae6fbe8ea043244b99cd0eb32a73d src/openrouter/components/inputtext.py: id: a995ae96be99 last_write_checksum: sha1:2da9ff645acc96772701908830151c5a707ed021 @@ -7858,8 +7834,8 @@ trackedFiles: pristine_git_object: 4a58daf7d055e111ebf204b18ee413203f06b745 src/openrouter/components/internalserverresponseerrordata.py: id: 91397805fa13 - last_write_checksum: sha1:5eda19511efdca45761dccc80cc678ee705a49f0 - pristine_git_object: 6742b2ecb43dab3f9d37e634cbc09650de79171f + last_write_checksum: sha1:6307236e36dc876dbfae76cfcc29ad49461b5b5d + pristine_git_object: c3e202d3c93225aba92c8ed9b83633c98f25fb4c src/openrouter/components/itemreferenceitem.py: id: d3c42b5f11fb last_write_checksum: sha1:25fd74f1c34307a97931e1d2c138a1db347218ad @@ -7886,8 +7862,8 @@ trackedFiles: pristine_git_object: 3cbde84c8d3cc12e69b9788bd365dc39f9fa27b8 src/openrouter/components/listendpointsresponse.py: id: 7662d5774bdb - last_write_checksum: sha1:bb4c49e9a214e9282919cc712239ee7e48c53041 - pristine_git_object: 9618ef276af10174085e61119ce5d53e9849a1ec + last_write_checksum: sha1:8645389f8ca0cc28969d27c99c3ef6dd6a2fe3d3 + pristine_git_object: f62b08917378eab6603f9b780c31a0e561329dc4 src/openrouter/components/listguardrailsresponse.py: id: 78fbd2689b5d last_write_checksum: sha1:d3103f2ff7aa2be788ef4aacf6a068497779cca1 @@ -7930,8 +7906,8 @@ trackedFiles: pristine_git_object: 5f661878cd074fc063a074cc90c830fb9ed827cb src/openrouter/components/localshellcalloutputitem.py: id: 762eac87313a - last_write_checksum: sha1:4afbcd94aab30d63f7315d7590c5feff0e183add - pristine_git_object: 24a827a217bdb72ab7529b0948245eba2f1a2871 + last_write_checksum: sha1:30ceeda02254c422c84805de1904663d6936edf5 + pristine_git_object: c961db613cc3d95cf072b8ec6eb295fb60adcd5e src/openrouter/components/mcpapprovalrequestitem.py: id: 30c0962de16a last_write_checksum: sha1:d823d5a2d589949bc94d4f76dde21f8654695272 @@ -7946,36 +7922,36 @@ trackedFiles: pristine_git_object: e5f3723605b0446a0a8b6b38acb9d528332fc5d2 src/openrouter/components/mcplisttoolsitem.py: id: f2dd3ab36ae6 - last_write_checksum: sha1:559bfa92486919f7e06191636602fa98470763c6 - pristine_git_object: 710c3db1513d3b12fc4c0899f899acfaa642573f + last_write_checksum: sha1:0bc5df5e37f5b0ea220484e409086353a742ab4e + pristine_git_object: 72bc76b4be518057976da3bbfebaf7e592092045 src/openrouter/components/mcpservertool.py: id: bb8aeb03a111 - last_write_checksum: sha1:c263b8a5a2837971a0542b30d5358f75b528c85d - pristine_git_object: 2b0489b5e316cf3de65f823f3df062c56ac7000b + last_write_checksum: sha1:1b1cbfbaba61da9c7a1b6121c6cd635f588dac47 + pristine_git_object: 93c62f100e86405ef60aecf04882bf9a5def7ede src/openrouter/components/memberassignment.py: id: c11eba01a3db last_write_checksum: sha1:f62f58b6177b88e5d3bf5a580ee1a0c7487da6f5 pristine_git_object: 7650d341b543e486d5b0a61afbaa9792aad14b63 src/openrouter/components/messagesadvisortoolresultblock.py: id: e36ad7b5263e - last_write_checksum: sha1:4aeab70302022153c511d68625d64d91d699fd3d - pristine_git_object: d52ac13f673f5998b315547f515aac509ff7157a + last_write_checksum: sha1:805cd3ae136174638910d080aa5e98a3b192e928 + pristine_git_object: 67ae6d5bdce0be9ac88b3f6295e8947962d9c9e2 src/openrouter/components/messagesfallbackparam.py: id: 53ba6717a4cc - last_write_checksum: sha1:8652a951a6b53396444aa1d5202736cf4f96143b - pristine_git_object: 05b041967edf0ab2d8458f9f0fc3577f0a55fcfc + last_write_checksum: sha1:e1e75026fb625426f7cd1702cd3136dcf3ccaf79 + pristine_git_object: 9026664fa77c678a7a5f2b317b511ad93445cff7 src/openrouter/components/messagesmessageparam.py: id: ed8bbab6720d - last_write_checksum: sha1:479cfffaf1013b89e92bb78ee7d5c5ad6646a1ca - pristine_git_object: e556cb06f6cf993616dd14191c43d6eca82edd7d + last_write_checksum: sha1:8950af2e2cdaeefb8f7c9bd28d692e8a082cb7d6 + pristine_git_object: 7c37d9ec59be202b5cdb2d40b5c52bdbe2d8ca9b src/openrouter/components/messagesoutputconfig.py: id: 54d1e297f740 - last_write_checksum: sha1:01e41c73a07af6167f6934394f6e1f419f7ab878 - pristine_git_object: 9b033dd8570e1d71ddb61a63a4b320d3003bd3ef + last_write_checksum: sha1:478d9f534254d60225ac89bd21ddc49d18329297 + pristine_git_object: 7e69d1f775baece5f94b03d35bcd884d5e6f519d src/openrouter/components/messagesrequest.py: id: 72b1f339024d - last_write_checksum: sha1:31b9b9af3f04cb27796a56329b3ad8629c8ae33a - pristine_git_object: b4d8f657ed28a53d7cdd1dd963694631070d1e40 + last_write_checksum: sha1:0c18b84a8cc917987084dbdda6519f5f5b7dff54 + pristine_git_object: 96e50f1f8a68d444c544a147ddf25a4567a3a158 src/openrouter/components/messagessearchmodelsservertool.py: id: 53d755edb120 last_write_checksum: sha1:389786fc22ba4bb47b0a086b7aa321f2f04fe943 @@ -8030,16 +8006,16 @@ trackedFiles: pristine_git_object: d71cb727cef8619b62b83f2b3a7cc9e18d8a60c2 src/openrouter/components/namespacefunctiontool.py: id: 0ff6b9ae7463 - last_write_checksum: sha1:fdba62eef6da0903dee9c07676f244bc9309c8d9 - pristine_git_object: 76f0bdbb2a44b6ee14e8cd4f20a335de179c3a53 + last_write_checksum: sha1:7cb37ac152c2a81bb31dd7df9ce36b3dd6dc795e + pristine_git_object: 7973c0a824b00df0b964e91566c8c24c7ccfcef8 src/openrouter/components/namespacetool.py: id: d8236926ce4d last_write_checksum: sha1:fa3012e6809aa0e6d5b94bddb3bd016f29f5b35e pristine_git_object: c0f3bdf2b16b3a90399ef94d1cfbd3bdc7afe0be src/openrouter/components/notfoundresponseerrordata.py: id: 6ebceef7a039 - last_write_checksum: sha1:da12b33a06dfce17c97c999f32f8811d31cf669d - pristine_git_object: b7549df72da73d670f982fe20ef99434cbde4051 + last_write_checksum: sha1:bc01cbf5e3da855698de435b270930b4087377fe + pristine_git_object: 7f9b6c70ef10b154e67db68ce62b326ab629cde8 src/openrouter/components/observabilityarizedestination.py: id: 8926882c1d18 last_write_checksum: sha1:6cbe740aa20cd27d81b5d5f4e229f3cb99520972 @@ -8138,8 +8114,8 @@ trackedFiles: pristine_git_object: 2351f7f08aabcf15cc6ed810a537ca4638bcd8fc src/openrouter/components/openairesponsefunctiontoolcalloutput.py: id: 1440f5810305 - last_write_checksum: sha1:dcccebe0945e97f1c16d848147a1e09070a91fbc - pristine_git_object: af8258c63d88899948741f0597c89203e461fea1 + last_write_checksum: sha1:db5170fedf1f70f85582e93fe11228786f9d7961 + pristine_git_object: d946fa527a0d50bd0e99b7c0964454755902d563 src/openrouter/components/openairesponseinputmessageitem.py: id: 90c7fe9366e7 last_write_checksum: sha1:36c63c2364d5bdb82ab06b91a9cb0c19121d9b69 @@ -8174,8 +8150,8 @@ trackedFiles: pristine_git_object: 08d990d8cc07b7928158fc55784cd9d613f4c58b src/openrouter/components/openresponsesresult.py: id: 78f7e33b19e6 - last_write_checksum: sha1:56a42131e52e6754a91051456d5a2592a4d7be0e - pristine_git_object: d3013e2c073fa72f7a52a86e2fe743c4a5175b57 + last_write_checksum: sha1:737262cfbd36e4b60e859213c9bb5c229a21bc9d + pristine_git_object: bf2d31cf24e062ae72d9083a926619d0406cc268 src/openrouter/components/openroutermetadata.py: id: 87062f38be59 last_write_checksum: sha1:65c4b563aea67eb15f1fc6d859856a081a1cc78f @@ -8214,8 +8190,8 @@ trackedFiles: pristine_git_object: 8820add39183035bdecc5ca43448fe54a638dd36 src/openrouter/components/outputcomputercallitem.py: id: b6b688951964 - last_write_checksum: sha1:a46bdc1ca42226d66cb63cbc5a912a1b8b6c1c0f - pristine_git_object: f13810cd113a0518faad0d890a5e8fca0e8b9e8f + last_write_checksum: sha1:9e958a672534c9c8159817674179fce6116af623 + pristine_git_object: 7c877ba6f8bd2ad9833abbe98478dcb1a8f177e0 src/openrouter/components/outputcustomtoolcallitem.py: id: a5deb8d3fe6a last_write_checksum: sha1:bde13f24234b1f3f4e70faa1738a867ca0d54044 @@ -8266,16 +8242,16 @@ trackedFiles: pristine_git_object: 58c21511449abfea7eeb5b667dadcf011b936bdb src/openrouter/components/outputmemoryservertoolitem.py: id: 4b0dc2fc5f41 - last_write_checksum: sha1:2faed502f16ce3da8192ad19418f2e8c5b1f5e99 - pristine_git_object: a7be8fb12363ac8ad56892fdd53eff1823cf9410 + last_write_checksum: sha1:9f0e9de9562aa7b0909ff7724bf0c5f4ccac7beb + pristine_git_object: 775551b0a4f71bf2f19b3b26bf1f0d3cc0fd80d9 src/openrouter/components/outputmessage.py: id: c6828e87dbd3 - last_write_checksum: sha1:6482b4450541a4e0a8f21d168240ca7787a7bf49 - pristine_git_object: 4fff8bd8bfef7b4836b83244659d12fe3b5b43fd + last_write_checksum: sha1:9472dfda50fb46afd2508364e421fe0dba62729c + pristine_git_object: 72d0dee9c88b7456158c1cd4f63acdb5162c2dcd src/openrouter/components/outputmessageitem.py: id: 97dec64e783f - last_write_checksum: sha1:00ec6be9de848f8e999b47143a6412e5319552a6 - pristine_git_object: 3a2a1f8c800da3f544943e7c75c26c367bdc9495 + last_write_checksum: sha1:3fd68c77c5e3f3df40d95acd80ec2199f17a7530 + pristine_git_object: cd48453a58e4d356a37c97cbf611bf62ea8c163c src/openrouter/components/outputmodality.py: id: 74c79e4cad45 last_write_checksum: sha1:a7e7205a3469166de2bd6649d94b8da6475cc3bd @@ -8334,12 +8310,12 @@ trackedFiles: pristine_git_object: 68114efa832af6afe4dc86cb3e7daa2a2517620b src/openrouter/components/payloadtoolargeresponseerrordata.py: id: 5209b3a61cc9 - last_write_checksum: sha1:41c9cfe04f098a0f8c3971e6dfe490c27e783413 - pristine_git_object: e644b9411ef99f556f8a212cca6386c8c5459743 + last_write_checksum: sha1:2eb2cf9270ed1047dd0703ce31726edd1e862fff + pristine_git_object: 97fa01df1eae9d1cd0658638f12c020c51c48277 src/openrouter/components/paymentrequiredresponseerrordata.py: id: 9a2591c3e458 - last_write_checksum: sha1:7fb9dcb46077104a5fea8bf67f1205cd914cd2e4 - pristine_git_object: 2ddc388dc692422714e0270553fcf47b8af129f1 + last_write_checksum: sha1:8d8df794613a9a7e4e99604ccc132154a15a2beb + pristine_git_object: 303abb4aec506afb8e4873686d9e42a3e456f2ba src/openrouter/components/pdfparserengine.py: id: 7de19e0839ba last_write_checksum: sha1:61749f514e36bd601e5e87dd043bd8132373b1ed @@ -8366,8 +8342,8 @@ trackedFiles: pristine_git_object: d572e3bfa6c8a55afa7d4f057fa17186652a98a1 src/openrouter/components/pipelinestage.py: id: b87ef92fdac2 - last_write_checksum: sha1:3ced429ce8fc615df880ba5eda954b42f53329cf - pristine_git_object: ddecb911ec93889d93c0f80020370a023323df94 + last_write_checksum: sha1:c084750496c0070666980e5e16822f287715a47d + pristine_git_object: 9f4d0c3a464e46b83257f57bfecbac501b6a305c src/openrouter/components/pipelinestagetype.py: id: e84fda1bf034 last_write_checksum: sha1:ada3c3cbb5726f94c566c172bb3b682f0efbe9fb @@ -8382,20 +8358,20 @@ trackedFiles: pristine_git_object: 4cf1983886f321a52f4bc09db0ec2c3f24cf3ff8 src/openrouter/components/preferredmaxlatency.py: id: 20675ae045ba - last_write_checksum: sha1:279e300348daf2d15744ee9e0e6520639e95dfd2 - pristine_git_object: 523f7c9fb0e1a2be719b14c0e18409acaf222588 + last_write_checksum: sha1:4a47c6c3be6e2828679e98227dfb48767ceb09b2 + pristine_git_object: 3081e68d225146f1099bd61a5907dbf49fb75219 src/openrouter/components/preferredminthroughput.py: id: 3b95bff6e301 - last_write_checksum: sha1:74d3094c6b5ae6f1dd36d5714415d0cc416acb3e - pristine_git_object: ceb4be7e491c27a88e8c5987268e9cea098317e8 + last_write_checksum: sha1:83d04cbab99a202ec149d883e92fa976542d2c16 + pristine_git_object: 99191f558465a6af1c7e8658298651852e9ab059 src/openrouter/components/preset.py: id: 13d4da7b6a00 last_write_checksum: sha1:dd78b534b89481c4c85f5f9b0ab61d1a0e5a0e4a pristine_git_object: 9c2ceba75bfaeef2944108ca1b43f1f9dc7cd7c1 src/openrouter/components/presetdesignatedversion.py: id: de6fbdac35a5 - last_write_checksum: sha1:73b938d83aa874074acc6cc2f40cf8beeddc1d8a - pristine_git_object: 504c90eaf1414f42f25d1559dbf44e107f3cbf4b + last_write_checksum: sha1:085645ab4b12773f0a92bedad34bb2d7ada6fbb1 + pristine_git_object: a0a2e2461b23a78b7bcbeed9db3cd993e6f79ac8 src/openrouter/components/presetstatus.py: id: e35ad4382937 last_write_checksum: sha1:e780890fa7c4d038ef24695e40748875ac58022b @@ -8434,24 +8410,24 @@ trackedFiles: pristine_git_object: 170ae25c582bb8decd74e1c69bfa8353bd44e86d src/openrouter/components/providername.py: id: fcc722fa2fce - last_write_checksum: sha1:692845f3d741deafe51a7ee14b635a36e4c22d56 - pristine_git_object: 9d36769a35f86db335fab17c63a5cc90ae58e01b + last_write_checksum: sha1:7899a42013912b227ff10ab1c7581982321cb4f6 + pristine_git_object: a779333ac0c3a5a4b810a7ae7d2a5eaf8c411605 src/openrouter/components/provideroptions.py: id: 73dde6c8f359 - last_write_checksum: sha1:6af552fc91c938e61edde7e1cdf56a12759e327c - pristine_git_object: 5d581eb959fad6c14622b5ccba29f78600b5b446 + last_write_checksum: sha1:821df909a8647d3a0a079670ba9174bbe90aeae8 + pristine_git_object: 2d7a313b528cb33c072ac94afde1cb530778db45 src/openrouter/components/provideroverloadedresponseerrordata.py: id: 5b693682570e - last_write_checksum: sha1:1ebc4527736f1e174ab37c84bea8a169fda9f8b8 - pristine_git_object: c85a381a5f596fcbc2e3e599a65e8d03d62fabcd + last_write_checksum: sha1:b54682560ff95dad18d26f9aaf887f8f6e0e1f71 + pristine_git_object: abe660d025957d61f68148006ca2c6efdc6b13a8 src/openrouter/components/providerpreferences.py: id: cdd58c8d664d - last_write_checksum: sha1:93405c39357e66bfe8cb60010622a884122b9197 - pristine_git_object: 2d44eabbe3200d884a5e01589732570d3a3ab7e1 + last_write_checksum: sha1:f8c331e585c01cbf291852656412f73855c3783f + pristine_git_object: 54ef6ce91cc841aff1c74c0fed7c6f54f2f0ee2f src/openrouter/components/providerresponse.py: id: ad3887be54c5 - last_write_checksum: sha1:48a5e7b227d5ba95cddfbfb16066ba10725353f0 - pristine_git_object: fc625cf7ba2669a3411ca7e6940296d2a1f69da0 + last_write_checksum: sha1:39da8d81308d0cd253ffd10dbe1a4f7a32703afe + pristine_git_object: de277f8caaf20decb933ba4d65601a94dc030017 src/openrouter/components/providersort.py: id: 348e382bf494 last_write_checksum: sha1:57551507f95cd2e16ef995e1c13f859fd0726152 @@ -8462,8 +8438,8 @@ trackedFiles: pristine_git_object: 1798ae9dd8c2e4b629bb99cc5c643827895e8231 src/openrouter/components/publicendpoint.py: id: 848aa2ef9129 - last_write_checksum: sha1:cfd3d1e8d5c62bbd494bd35e92d4d574103a189a - pristine_git_object: f91d6ae5aa526c51cf218eaaed2cb77514737ae8 + last_write_checksum: sha1:fa2d71efd613a5a8166d041c7d6a123648782231 + pristine_git_object: 0ebe1cdd58e0ae25326a853eb4ef6060b26efcad src/openrouter/components/publicpricing.py: id: 96d115d83cc5 last_write_checksum: sha1:fd8c320ac83b282eaf2405045329b55076d4311a @@ -8488,10 +8464,6 @@ trackedFiles: id: dcdb3308ad5d last_write_checksum: sha1:e7c0e4a022ad6aedd4ed21bbc0eb0160b1dae70a pristine_git_object: 9adc8e68c6993b0490e8d14e1d2c0f15694dde97 - src/openrouter/components/reasoningconfig.py: - id: 754fc31a7b69 - last_write_checksum: sha1:03e4e2ec1a964e9d549604a6883001cd241c3b62 - pristine_git_object: fc8b0fb192b13cc1bd9700df1ee91bab73f446c2 src/openrouter/components/reasoningcontext.py: id: 39d2491701d9 last_write_checksum: sha1:91e931a7ef777351be84e50d342fe635b0e1d8be @@ -8578,8 +8550,8 @@ trackedFiles: pristine_git_object: e09987ebcd2b8c39d61a8a766655bd275d4e7039 src/openrouter/components/requesttimeoutresponseerrordata.py: id: 2c5f5ceaf22d - last_write_checksum: sha1:d5a7d414013a59cb8ce0a82cda3309103dd9d597 - pristine_git_object: 0ba1a63f3d052eca0f3475c036feafe212d1e77c + last_write_checksum: sha1:ec9cf781e7744b582843bdc74f93003e1c19f8a8 + pristine_git_object: 72b068484474cb51c64619e8bdbda4c77b64b5f3 src/openrouter/components/responsehealingplugin.py: id: 06608e027868 last_write_checksum: sha1:f4ee2caaa09379c52353f8920109f5e3e95f2274 @@ -8598,8 +8570,8 @@ trackedFiles: pristine_git_object: f38c8edcb616d9e7cbd0f724fbb9d9f5aae014f9 src/openrouter/components/responsesrequest.py: id: 8c850080ec5d - last_write_checksum: sha1:2882452b1522d37f8280da2ef7eb9dd1a21b61df - pristine_git_object: d3178dd1bf5e48dc18689f0920d8324390f66f59 + last_write_checksum: sha1:269f36b8fe206e48755ad8f9082e91f5dd980635 + pristine_git_object: f7102dca4c956b04c23ea43d74c29d4737b981d5 src/openrouter/components/responsesstreamingresponse.py: id: 142379f3bd90 last_write_checksum: sha1:a48d6f3610f5d15248ef4d25a0d88a0a4a1a9db7 @@ -8610,8 +8582,8 @@ trackedFiles: pristine_git_object: d47bd379ad5b3e0e548581340f4afaaf54d1d8ce src/openrouter/components/routerparams.py: id: 4563ca5dc421 - last_write_checksum: sha1:8f9dc9a02a6a3a4f0131ad36d8d7cb2c4525a97f - pristine_git_object: 264be6707d18f8d48992c6c339a735401d51d79f + last_write_checksum: sha1:1196756c04c7691b27a7e6f092c92fb91125caba + pristine_git_object: 9199acfa31b739fa7232c2a575f2561076c830b4 src/openrouter/components/routingstrategy.py: id: 553fefb9814c last_write_checksum: sha1:5db57f3fb6368777e8c2713eba613830d4f647fb @@ -8642,16 +8614,16 @@ trackedFiles: pristine_git_object: 16ca66ee3f2402e06b9395a78be7def7da172e79 src/openrouter/components/serviceunavailableresponseerrordata.py: id: 606d51d201e8 - last_write_checksum: sha1:275a171422155df8447f1b250f0a8af61d266b68 - pristine_git_object: b6859e9f7f8b9ffcd41b62013816e8408be0cb25 + last_write_checksum: sha1:8fdac755a1b710330e9ed8b1ecb41bef1b4d2ab1 + pristine_git_object: cd18828d5d77f1b0f171990ea07693494e90260c src/openrouter/components/shellcallitem.py: id: 0b3b4f503413 - last_write_checksum: sha1:30e23c3f175ce7de796559c5399b4fb0e67e387b - pristine_git_object: 3a5faf691f19ecba9d901040a9055c9d388d7877 + last_write_checksum: sha1:460fb9d45c3b4f7392ef5213878c541bb0e922f2 + pristine_git_object: 3eeb48a1f6161424a8a5e66f797863ca8e3a6361 src/openrouter/components/shellcalloutputitem.py: id: 54409ebc9cdd - last_write_checksum: sha1:f77f853c44ac5a2cd384e828915f1cf5a2f7e980 - pristine_git_object: 872701b549bd8a6edee29931adfa86ffb87e229a + last_write_checksum: sha1:ed00ff681b3558f0a84f86bee8c1fb564ac1ad23 + pristine_git_object: 3996cdd37763964f46cb6bec76bd63803130d402 src/openrouter/components/shellcallstatus.py: id: 3627230aad33 last_write_checksum: sha1:c026c8544f66c0ae9bdfa83b9d63502ee8f2907d @@ -8770,8 +8742,8 @@ trackedFiles: pristine_git_object: 020dd01249eb982b0e94f0c19748badf5287a31a src/openrouter/components/subagentnestedtool.py: id: 911a465973a0 - last_write_checksum: sha1:beb2209144b032e109c4afe33f440728423d7594 - pristine_git_object: 4a62a2c02e57b75a1c75c2198c9737cfccc0188a + last_write_checksum: sha1:6aff7a7050393855944bbf85d437800336d12215 + pristine_git_object: e803021eeec772cd3d02b5eb123c18558156e117 src/openrouter/components/subagentreasoning.py: id: 2715ebf26eb3 last_write_checksum: sha1:79917bf44c183cbd5f7b9e9a9ce60ef288e4f0d7 @@ -8826,28 +8798,28 @@ trackedFiles: pristine_git_object: bbd8827835868c2708baa37d1a060b3f24f16cc3 src/openrouter/components/toolchoiceallowed.py: id: 9e2a14e87eac - last_write_checksum: sha1:53bae953f77869389789d3d520b0cc22e65cd5bf - pristine_git_object: 999b399bc6f5ad2be3bb87f813d0ed1fb5ec2614 + last_write_checksum: sha1:b969135c75e9671fbbb6bc7a325968acacec07c7 + pristine_git_object: 4ad8b7e6ed164dbe62f17aabed7352319c8bbe26 src/openrouter/components/toomanyrequestsresponseerrordata.py: id: 4dc67ae011a1 - last_write_checksum: sha1:0c0adf2f729b6542380b70f82bf21d4cb5f97d44 - pristine_git_object: 2446e9664a739abb8216b6461997e51d9c069e44 + last_write_checksum: sha1:d818b385d0725e729e5463b8d5f196d82b4340fe + pristine_git_object: 122defa7be3d461999de5f9f169d1c3e8246b876 src/openrouter/components/topproviderinfo.py: id: 0517ce43cc77 last_write_checksum: sha1:f99bf790e69be8c73a5680b9cfa0b97fc03528f7 pristine_git_object: 6e119e6b3855709568f41ab53095c41aebd2cc5f src/openrouter/components/traceconfig.py: id: 19375fa88b9a - last_write_checksum: sha1:431e9244c3205cb6def45359e8f60feb64a1d3dc - pristine_git_object: 5ef25d66b7c711b0324087c001b9eb013f798222 + last_write_checksum: sha1:46fd7fd3f26caebda22604006873317f9aab1480 + pristine_git_object: d0a4c49a843ad97a82b9c698dbcaaf7a95a413bd src/openrouter/components/truncation.py: id: 88f4e4be9fc0 last_write_checksum: sha1:69e1f9d19ad27b82d882031c100f8a607344f8af pristine_git_object: 1f8bea3c63592dc738f70d50eac8c69e2e755096 src/openrouter/components/unauthorizedresponseerrordata.py: id: 7d9755fc8395 - last_write_checksum: sha1:522dffa2a90f3a8e03fcb966ad5c44ba1bdbc17d - pristine_git_object: b1fee6c3b765d5d2592a594a788c1a1c3882131d + last_write_checksum: sha1:fe0c623742ecc4cec29dbae705ca24e5813ccb8f + pristine_git_object: 75fec0389f962e84b96590072950732180a7cb4b src/openrouter/components/unifiedbenchmarkpricing.py: id: b08adf1a31d0 last_write_checksum: sha1:e8d1cb425c61a7094f50a73e59cec6d64dc34204 @@ -8870,8 +8842,8 @@ trackedFiles: pristine_git_object: 7145a0840a470a47f17ea8126012ff6c935e11c3 src/openrouter/components/unprocessableentityresponseerrordata.py: id: e8ca4a51f994 - last_write_checksum: sha1:f9e13313f56f785b451364a4a41d692af67d2432 - pristine_git_object: 72a7e1d544432de700e38172425930ba6fcdef93 + last_write_checksum: sha1:e97c277b49f4bb6bcfad8eef8a46b382730729a0 + pristine_git_object: 696d3c578c6b09f9768e52a7dd000284fb62f1b7 src/openrouter/components/updatebyokkeyrequest.py: id: 5edad69c278d last_write_checksum: sha1:c4c5bb57979e5251e5423cfe19b22036a6f8cb54 @@ -8890,8 +8862,8 @@ trackedFiles: pristine_git_object: df833960211cc7ed2a2a42fddbeafda0092e1c0c src/openrouter/components/updateobservabilitydestinationrequest.py: id: d7a39fe04386 - last_write_checksum: sha1:9eb493e5c3c8567235b70ec7a603ebdffcb544ea - pristine_git_object: e0d3f99ca9cafe61ac6b011cc2e54348d46115e5 + last_write_checksum: sha1:6c7101d98b85614cc5768f9a9568d87763769a2e + pristine_git_object: 7325eabc6e6dac69cf98266a0acacdd0e4b14709 src/openrouter/components/updateobservabilitydestinationresponse.py: id: 187c51d2b3a4 last_write_checksum: sha1:cadc62b37feddb4281e471d15627a9a1bef32cb1 @@ -8916,14 +8888,10 @@ trackedFiles: id: fe4578e64ea3 last_write_checksum: sha1:6c7d8e616c55f8239c7bf46ebf237fa536b6c462 pristine_git_object: a0491cc8fd3bd9986146cb1176e27d5b9c9beb60 - src/openrouter/components/usage.py: - id: 965ca6748bf6 - last_write_checksum: sha1:ffc3d82f236daff144c71e0c48c201b428d3201a - pristine_git_object: 09f7248804ba12bfbef924b934f57c34974d965b src/openrouter/components/videogenerationrequest.py: id: 70e3c9ff288c - last_write_checksum: sha1:a15c9b755556bff10959d62d27f53e39747ba488 - pristine_git_object: 510ff2a63ecf04cc4146b3c77adaedbf6795fea0 + last_write_checksum: sha1:78d324450c009cc3071c898ee905f7712717fe92 + pristine_git_object: 26d076feddde66414b42a1b568098adcc0e30adb src/openrouter/components/videogenerationresponse.py: id: 541f1321b072 last_write_checksum: sha1:18c3aa7845f63a9614286b1a27b6098eae1c4951 @@ -9038,12 +9006,12 @@ trackedFiles: pristine_git_object: 791cdeba11d6c5e9e9381760fd8cd8ca86233b22 src/openrouter/datasets.py: id: 2378f80d1d6a - last_write_checksum: sha1:bcbf0eef58b4f26fc01ddd28c568fc361ccf8919 - pristine_git_object: 3d9437c8ce1bdc83d3703c4374cf10b1bcae5d71 + last_write_checksum: sha1:9d7c00a8748a3d6015be7159cfd77609ae52a741 + pristine_git_object: a1e8475671445f9d2e3b5cb7f0345ab6e4dfba7d src/openrouter/embeddings.py: id: 0374ace39067 - last_write_checksum: sha1:6a967c8d367aabf21aae51b4c098e02f3909bf5a - pristine_git_object: 906426aac514d79539160aae83cb6dbd4e128eac + last_write_checksum: sha1:220cac105c58c9b42f2f9f9e6bf98f6a7beb4f96 + pristine_git_object: f570a07115a52b248ac83ab6d80ddabca553a5db src/openrouter/endpoints.py: id: 465bbf2b7939 last_write_checksum: sha1:0c4ec93f6309edfb7f009679c04f59fa2a62232c @@ -9054,36 +9022,36 @@ trackedFiles: pristine_git_object: cfe7cbb6a75e5b5eb3b25b630ca206f5654d6742 src/openrouter/errors/badgatewayresponse_error.py: id: 818c3605ce23 - last_write_checksum: sha1:abf8470143de24b708943ca1fa0b7bcb2b4e84b1 - pristine_git_object: 28ce1d4e5620021bcad39fbc58c45459013de4b1 + last_write_checksum: sha1:f0307bff4a47f950c514d7d47de5690cac871bbb + pristine_git_object: 4460dda276b0026f05f83586e5d96e2fd8f967e1 src/openrouter/errors/badrequestresponse_error.py: id: 562928a0bbcb - last_write_checksum: sha1:5cca64da1d9f3536b2ae9e0e13c75438c04be433 - pristine_git_object: 514a2727d42471d1e2cba0002d1d2f67ce297dfc + last_write_checksum: sha1:43fdc266ca265c18a1b4aa7fce7ba971cd7208a2 + pristine_git_object: 40bdc064829b215f5f68d0680b627655836cb577 src/openrouter/errors/conflictresponse_error.py: id: 2411f691a552 - last_write_checksum: sha1:17347336a5c3126c199c7f94da6ec9302111255c - pristine_git_object: 434f65c0e5b9165ed6ef608f4105ae200e66fc07 + last_write_checksum: sha1:d2e3d6f7128cc321d37ec1397ee5826428764729 + pristine_git_object: 09348be56a2f3a68e2df3d6b268fece842764669 src/openrouter/errors/edgenetworktimeoutresponse_error.py: id: 2a740d29452a - last_write_checksum: sha1:e8db1c9eb416ec255115337f0dee669644831cde - pristine_git_object: 4ba05c459f7c0885698b54fe7e500d41d65fd94c + last_write_checksum: sha1:e8d9e63398fd03823e74e41ef7db8be0a40e91aa + pristine_git_object: 8056669b5442256288efd782bcdc5a8eef6cda05 src/openrouter/errors/forbiddenresponse_error.py: id: 4c1d3e6c95a4 - last_write_checksum: sha1:ddc14da480a282ee0550b73aa73fde7fa9d4a7cb - pristine_git_object: f6bd1810c53a35663add19d4066d8b59d6dcd2e4 + last_write_checksum: sha1:1b60f416077b959b45023e087076e5bd16972ae1 + pristine_git_object: 97c14f31678ca2a6ef09a71f397eb2dd1a7ea701 src/openrouter/errors/internalserverresponse_error.py: id: a5ab5c4a53a9 - last_write_checksum: sha1:ce08c9c400461eb0e24aba17c443614e9ae18a36 - pristine_git_object: 207c80c8e384e818a670a58fa451ae10ddd49cf6 + last_write_checksum: sha1:3ffab8fcee20916d34ac6ff5112e8721f8d30c46 + pristine_git_object: e63641558c6a2f555b46a76fa0e224c9ad526b88 src/openrouter/errors/no_response_error.py: id: b8b987b5e306 last_write_checksum: sha1:7f326424a7d5ae1bcd5c89a0d6b3dbda9138942f pristine_git_object: 1deab64bc43e1e65bf3c412d326a4032ce342366 src/openrouter/errors/notfoundresponse_error.py: id: 283f4657fb1c - last_write_checksum: sha1:ed800dce3d8fe690376d7b3afaede1c80fb42b86 - pristine_git_object: a79ff3ce9dcb8f7d18ca8b8a32c8cd89ff4a797d + last_write_checksum: sha1:60f44e79ac40d4c8ffaee143588ea288745c9a42 + pristine_git_object: 2de2d02103bb5ecac80c2c4667eadb70b7d931c4 src/openrouter/errors/openrouterdefaulterror.py: id: ec1269b0a602 last_write_checksum: sha1:c7e323985411ebc622a365df7d1560db134e5fb8 @@ -9094,40 +9062,40 @@ trackedFiles: pristine_git_object: a3218e9a6bc8dfa4093c179225507d55e0dec027 src/openrouter/errors/payloadtoolargeresponse_error.py: id: 94bb184d04ae - last_write_checksum: sha1:cd6a53126dfaf2e1ef6380d3ed19678df493e173 - pristine_git_object: 2f118141eb32430c4b0350ef2fd624e69d0cb206 + last_write_checksum: sha1:6bcd8031d700a661c0e481ea7b92e2d57daa7b2c + pristine_git_object: 8a82cc3d434a6415fa34553552ca0dbcdb6b471d src/openrouter/errors/paymentrequiredresponse_error.py: id: 323b9c0a7cdd - last_write_checksum: sha1:e6969e50de086e6df048b998751be3dd748e1f5a - pristine_git_object: 1bd7e6bf443f5986b04c8cc03528d5fd73f71dab + last_write_checksum: sha1:006173710bd4ae4c4209e4115c27c7c7a3d8aec1 + pristine_git_object: 7a5b4d0a5ff1589eea2b7570c4af2c9865bf4045 src/openrouter/errors/provideroverloadedresponse_error.py: id: 78dc52b11d59 - last_write_checksum: sha1:4c1dee619eb80b257f669ea830a07e73ad38b4c1 - pristine_git_object: 4594e433f5247e9984203ab8be56119c58b0d342 + last_write_checksum: sha1:a24f5708cdffedb87e2ca65d15d6058f1f80924b + pristine_git_object: 8850df35a31e7b0ba39d87331d5c76a90f435fd8 src/openrouter/errors/requesttimeoutresponse_error.py: id: 74f87b9d42d2 - last_write_checksum: sha1:981c6f7eac598df76bee80aed26ca5a4b0f5f6b1 - pristine_git_object: eb403d9a83e5ce274137de63e78142abaaadf29c + last_write_checksum: sha1:98de1308cf09289a6e4ed41ee029cc94004147dd + pristine_git_object: fb025fdc0c8ab782635fd33dddd925c93385dbc9 src/openrouter/errors/responsevalidationerror.py: id: 861959e3671e last_write_checksum: sha1:96842d22bdaacde74bc581692af0230b4aa2684c pristine_git_object: 8d0d6fd5911c93c00c6a272d3c91ff16573f468b src/openrouter/errors/serviceunavailableresponse_error.py: id: 18cc83a0fd00 - last_write_checksum: sha1:d654d25d43e19aa3214ba870259066c49bb8ff32 - pristine_git_object: 0c9c74b3a67ce7131f6401e337ea3dc9a75d2f60 + last_write_checksum: sha1:a371f5fd6cb362a1bec4640301a852f0239d5ee6 + pristine_git_object: 46fda7a3fbc0f4b43ce20cdefb7e2e2b9083dde3 src/openrouter/errors/toomanyrequestsresponse_error.py: id: a3f4058d56a1 - last_write_checksum: sha1:807f834fadb128356eb5009d0348e4298a1a958b - pristine_git_object: fbbad1643a27eaed2626282e225320cbfc9828bd + last_write_checksum: sha1:da6f68b63bec510c13993d53c806cfdc227eab26 + pristine_git_object: 68cf4339e69bf6b3b448cd13ba05ca6fef845131 src/openrouter/errors/unauthorizedresponse_error.py: id: b26af31a1ee9 - last_write_checksum: sha1:05cda7a87e5024058aa8d3de83a8decfd03c154c - pristine_git_object: f70ea1cc64c798c46029381951fc7f1f89fe3996 + last_write_checksum: sha1:3770d7aa694e1fd4a870f394d33fdbb640ded956 + pristine_git_object: 7ccdc76a2f98c5d110cd075d86f85f627e66292f src/openrouter/errors/unprocessableentityresponse_error.py: id: fac4aa89599e - last_write_checksum: sha1:5505f65c29d570dee9ccbc7188b50b3d833c68fa - pristine_git_object: d858f3b578b189d20b89d0dfc1a6b829ff5897ff + last_write_checksum: sha1:40ac0af253e94915c01c5526be71bc87587050f9 + pristine_git_object: 51b56d9ca5e27c49a98d05f0414573ac5243c580 src/openrouter/files.py: id: 7baf7ee1f5b3 last_write_checksum: sha1:d06e5c382e420e3ffb5892e08088844e69f7a8d7 @@ -9138,8 +9106,8 @@ trackedFiles: pristine_git_object: f6dbf5440466ba6b1d92442cad1b91e2b3587c52 src/openrouter/guardrails.py: id: 705839f34e66 - last_write_checksum: sha1:45c6fa317d2c33c9fc5c3b59ef6b0e2979ccc16a - pristine_git_object: b9fa12541a1210e1ba7b50c75ef9acf3c9ab0cbd + last_write_checksum: sha1:1f26fa2b59f6b779763d6b7041ca44c46899aa4d + pristine_git_object: 6a7bc4ab1e1f7b30ea28790781b64fac0dbde138 src/openrouter/httpclient.py: id: e9311185443d last_write_checksum: sha1:5e55338d6ee9f01ab648cad4380201a8a3da7dd7 @@ -9162,16 +9130,16 @@ trackedFiles: pristine_git_object: 5b741456655ff48919d17ffd552a6410f0587966 src/openrouter/models_.py: id: 4e1ae1fe5b98 - last_write_checksum: sha1:92ace67311606c8bb05b1e264f394e58e2f3a73d - pristine_git_object: 1a85e99763d0764e5d200911200e4710e454b538 + last_write_checksum: sha1:2ce4ab5a76abf9324b9915d738b1879ff1b37415 + pristine_git_object: 2fa007f0dcb6e8c9600246fc5273180669ea6f52 src/openrouter/oauth.py: id: 1948ce27255b last_write_checksum: sha1:8d6ba30594d5674164f045d6655914b801268f72 pristine_git_object: d6a938412d5c82be874e958ba4a3043bd46284d3 src/openrouter/observability.py: id: 6a17f32d3f33 - last_write_checksum: sha1:4c9eabfefd55cb2cfe1e3813a567296e99e988aa - pristine_git_object: 67318c78e377567e897be1f572a1e3cbdac0366b + last_write_checksum: sha1:92a23c7f390209f143277e9bcab363e99e601134 + pristine_git_object: e59a1eb3047eadeadef109cc3fb55fa34154c026 src/openrouter/operations/__init__.py: id: 9afcea1e7161 last_write_checksum: sha1:e56a2031fc05ced63f1e1c769fc3407b290890a8 @@ -9310,8 +9278,8 @@ trackedFiles: pristine_git_object: dc728a09fb420c00c185bcffec5fc2e2dab64d1d src/openrouter/operations/getapprankings.py: id: 5ffd23dafcc1 - last_write_checksum: sha1:e0744bc48799da7cccfcef8e5432c59a59aab288 - pristine_git_object: e5f42ea07b617b12dff18f2a067bef66a81f35e8 + last_write_checksum: sha1:ab86de57d9c8502a130a61f4405f3ca40c2ff5dc + pristine_git_object: a8e00f731e950d64ec8ca7ab10f6fca96884c8e7 src/openrouter/operations/getbenchmarks.py: id: 5fb88644491e last_write_checksum: sha1:dd712e430db5c813a352a711430da516f17381e6 @@ -9350,8 +9318,8 @@ trackedFiles: pristine_git_object: d5a47b01285b12f05d46240e253a934be63f0a00 src/openrouter/operations/getmodels.py: id: 5bd5dfcb0125 - last_write_checksum: sha1:f736c36217ac4f17ba5405dabcc33ee54223a256 - pristine_git_object: de855463c99bc9ea9e94fc78093d289c6dc0d20a + last_write_checksum: sha1:bfc3210a07a36c48dd3c700ddf7883da030e4e05 + pristine_git_object: 3fa8982c8e0c31844d7b9093d348eae2aac5f34a src/openrouter/operations/getobservabilitydestination.py: id: 15b49f22aca9 last_write_checksum: sha1:351b050b646c9e2dbffaf27633cbd38b30047169 @@ -9386,16 +9354,16 @@ trackedFiles: pristine_git_object: 1075e4c49f582db35eb921aa25d2b2baeb803dd3 src/openrouter/operations/list.py: id: 3ced31e3804e - last_write_checksum: sha1:122d025a3a5ac362ee969b2b0d800876569943a0 - pristine_git_object: cc90375e9aac23107e57e18e6adecc38f544e185 + last_write_checksum: sha1:5db489d16b321c49808ca3da9100839a72903f67 + pristine_git_object: 75480914b4db49d02f606f22d17d1a6ef52eea2a src/openrouter/operations/listbyokkeys.py: id: b6dd42b3e05f - last_write_checksum: sha1:f3728852efdcbc16b3389c3f84abc57f55ecb8a7 - pristine_git_object: b248ac9b989032715b882860b8c859ca1747d44b + last_write_checksum: sha1:03be6d3f10af3ca3fd84b0e6e4b2017917ebe70f + pristine_git_object: 6bf7df4328413ca57fbead1748683f8f34c9d955 src/openrouter/operations/listembeddingsmodels.py: id: bf749a1f23d6 - last_write_checksum: sha1:0af7e243f6b7ea8dcb9c3e506c0e9382372e8397 - pristine_git_object: 016f0b9bc08b60b51e61f5b6acc44697ef5f1c27 + last_write_checksum: sha1:938440c9b9df0c3d8430792f262bffced0207d13 + pristine_git_object: 822451956b9434ae27d4195621be0ba3718eb176 src/openrouter/operations/listendpoints.py: id: 62b7a5f21dec last_write_checksum: sha1:1aa9ca7cc8e0376cc77fe81403e2664ecbd1abb2 @@ -9414,16 +9382,16 @@ trackedFiles: pristine_git_object: d57feee9926b76b03d1ec5ed8655cde8310b8192 src/openrouter/operations/listguardrailkeyassignments.py: id: ee9d33f4de6b - last_write_checksum: sha1:82c4cb0cd9d16cd761b7c0db8fa66165e1bb6f11 - pristine_git_object: 90f267220ceab68f8965a64b5d008a891da9f0d3 + last_write_checksum: sha1:1e815eb28cebd3f6193deb3b7904d8cba760ecd4 + pristine_git_object: c8a31fcbeb60ecc529f5f897a989352a3f7d90bf src/openrouter/operations/listguardrailmemberassignments.py: id: e36e679b02ec - last_write_checksum: sha1:c281ab2ced63404c7786dd0828363708d60ae081 - pristine_git_object: 4ff57806d2d433412d45aef06b033f0c2a3502ff + last_write_checksum: sha1:98c0d548ec6963a9d9d41e26e426bc1c647008ad + pristine_git_object: 49357f1052d225c348c08e831748d5dd23455ea0 src/openrouter/operations/listguardrails.py: id: c99a9e7be93c - last_write_checksum: sha1:758db0ed0413ea4a9ec15ac0e6942fd4f56cc863 - pristine_git_object: 1e36035bdc2da8a195f335d0dca4f0bf6f6858de + last_write_checksum: sha1:6fe758f70a1b8695d4e2d8de6240b465d8b48b4a + pristine_git_object: c7d05cc96dd5b5113e3febe24173a0c2a62c4119 src/openrouter/operations/listimagemodelendpoints.py: id: 40fd868ead3f last_write_checksum: sha1:2f4ba55f45f8fe4b5ce56cb6781fa8db455f8927 @@ -9434,36 +9402,36 @@ trackedFiles: pristine_git_object: 01655ae02036acf433ec5f54fd1d9323a55f0684 src/openrouter/operations/listkeyassignments.py: id: e26c11d1bd3c - last_write_checksum: sha1:045dffabc8207001234c5426e8fec665749597ff - pristine_git_object: f9ccb3da2d18137bfd9cadf6b53448a5bd8c3efe + last_write_checksum: sha1:378b13828e43296aa120e24a0b2d7a55bca85212 + pristine_git_object: 25352cf38435a7fece7f5c4512ac0710c60ecbe0 src/openrouter/operations/listmemberassignments.py: id: a993b5549126 - last_write_checksum: sha1:00abec2beffb8b43a17c9d053fd582f4802a80b2 - pristine_git_object: 60c04beaf9ddb069d8b6e9b689e158bac1cc7d8f + last_write_checksum: sha1:5a6e2469b141dcee32fd54d75b8fdd726c14d8c5 + pristine_git_object: 4ccc06b53c5f45c9fa99dc29623e5b442ed39462 src/openrouter/operations/listmodelscount.py: id: d588d81b71c2 last_write_checksum: sha1:359fe33759ae50d8180ab793a32b42045a28e3af pristine_git_object: 797af26e7d4985305600eb79b3ede8e78379d13a src/openrouter/operations/listmodelsuser.py: id: 16eb5946cf60 - last_write_checksum: sha1:ac09a491143da6a59b3b84ce74fcc51f19222b0c - pristine_git_object: d2a24e430af7ad8357c453a1a91dad76635501df + last_write_checksum: sha1:0cbbd011e6a5b332eefbed8e9ede96287fdd9a40 + pristine_git_object: 8a540289e07f888ba77baab1ebe1259b8221a3d4 src/openrouter/operations/listobservabilitydestinations.py: id: 40d2ffa975ee - last_write_checksum: sha1:e49fcd9ded0009ac0699ad63f8ddbfbb2dc92aab - pristine_git_object: 818784f85b0d94fb4731a492ed05297720b5add2 + last_write_checksum: sha1:81c37a18a7326ddbe95a22d2f43a178cd6a58a93 + pristine_git_object: 6912194b6639fd1fbcd56b359c52f78857955954 src/openrouter/operations/listorganizationmembers.py: id: d40a3e0e2b38 - last_write_checksum: sha1:9501a8781176d34c507edb9b160f8e1dca1b190d - pristine_git_object: 06825eead8265472d4abaa1395328215e9dca760 + last_write_checksum: sha1:95091a5194c0df932a15898831dea3738973ab2b + pristine_git_object: f8ab3cfb4b38110dd4c64da3595e9e1f8d367f2f src/openrouter/operations/listpresets.py: id: ecdc7097aab7 - last_write_checksum: sha1:a20921ac7ad2f66fe43a8e09ff14aefeafdbffd3 - pristine_git_object: 23c66e8419b295bb092f2ba1dbf59f5cb30572f8 + last_write_checksum: sha1:4b209724a3bf1627ca12250d165806bed44fb8ac + pristine_git_object: 64002d1db512b764485ec7cff8348e741079a71f src/openrouter/operations/listpresetversions.py: id: 697cf707300b - last_write_checksum: sha1:5059f0a2b2af9247f2d0f9c84a1338570d671465 - pristine_git_object: 1224fee0a75a1bb356e4bb53459fd1d2a0db3e72 + last_write_checksum: sha1:da897aa354eef6c675649e1a1c09ff97eff7add4 + pristine_git_object: 22c7b85ea089a8917a37f7c12555f06dfa69e670 src/openrouter/operations/listproviders.py: id: cf6e2db15118 last_write_checksum: sha1:decee82d2b55738162cc47f02f56c592d53f9ee9 @@ -9482,12 +9450,12 @@ trackedFiles: pristine_git_object: a65454da5ec6727d99312d56c64324edd8615685 src/openrouter/operations/listworkspacemembers.py: id: 9886d508d283 - last_write_checksum: sha1:dac90a6e7a00d60bff8440f8a012b2a88cf5fc82 - pristine_git_object: ff41be4a17d8b57a01aa9c2273b7db6099f589fd + last_write_checksum: sha1:5e36a7e36bd915ac949b049b258e72ce418fd70c + pristine_git_object: 250b644257bb33182396f5e503d9b59410d5da10 src/openrouter/operations/listworkspaces.py: id: fe94c6f61835 - last_write_checksum: sha1:7f5d1903b71a84b51230492ea725f42ee1c413e5 - pristine_git_object: 59f628e9ebbd9da59c4e76aa1c8a080e4f6bd063 + last_write_checksum: sha1:32f503f121d7ca1b10392f2615fea224ce7d5f1b + pristine_git_object: cbdad12f956c5f2a8252b7f6db102f1e83c4e85a src/openrouter/operations/queryanalytics.py: id: d76c63ff66f6 last_write_checksum: sha1:b184adfb9d438f443c1fd6c4e749aff3188e9496 @@ -9530,12 +9498,12 @@ trackedFiles: pristine_git_object: 228942b37d54273e752786186a49bd1b4ed4a787 src/openrouter/organization.py: id: 6f4c63c416e8 - last_write_checksum: sha1:d12e64ae4b677c154ff5a2cb964d34ddd848a323 - pristine_git_object: 31c74edd544c4ab7d4c5153a6d2888623ca66aed + last_write_checksum: sha1:2dd1147964cee9fe658f3f8251f0d5bb43169f0d + pristine_git_object: 6e0305fa49d62303a81e2dfbac78ae63449a94d6 src/openrouter/presets.py: id: bd0c40379dcd - last_write_checksum: sha1:2ced0ea9913f5c2058983b2fea8b1da2884d1d13 - pristine_git_object: 06d3ee1107379e993406881683bc8a78b53d72db + last_write_checksum: sha1:ab686f1ab698374dee73671cbc2cc9144c30832c + pristine_git_object: a5ee9b47284888015bbe6b3d595ba021c45e4f43 src/openrouter/providers.py: id: debc4c48f149 last_write_checksum: sha1:11dbc607825edee8dcc84b39ee8171e097c47acf @@ -9550,8 +9518,8 @@ trackedFiles: pristine_git_object: 76378ffba1806e0ca66fc873db1a568be0becebb src/openrouter/responses.py: id: f2108fb635e1 - last_write_checksum: sha1:425156023a82480979d2d70ba0230e83797f38d1 - pristine_git_object: 4362352db539178a80cb797812f41c0962f3b28e + last_write_checksum: sha1:393a9bed1363a2a800d0eb1a9e8d44154ac273c0 + pristine_git_object: 466c613077cfdae6e9d6b91d189344e2d0466c30 src/openrouter/sdk.py: id: ee9846c4c9c5 last_write_checksum: sha1:2247537eca7f88a8f36e53fe011904b98569ad52 @@ -9662,8 +9630,8 @@ trackedFiles: pristine_git_object: 4a82cde858211c0f5a01b08980cee0e9e3d0f52c src/openrouter/workspaces.py: id: cd6c533b1802 - last_write_checksum: sha1:3c465ee2641e0d0b42b28de96788f0b38e825f75 - pristine_git_object: 0e31f05047b6c176effc21f3540fcffc9a2cb6b5 + last_write_checksum: sha1:215f0214a25a10fc1cccec280ea439bbc89496da + pristine_git_object: e36ad249cc682565f568be4f8e49cbb9c8f0d4da examples: createResponses: speakeasy-default-create-responses: @@ -9671,7 +9639,7 @@ examples: application/json: {"service_tier": "auto", "store": false, "stream": false} responses: "200": - application/json: {"completed_at": 1704067210, "created_at": 1704067200, "error": null, "frequency_penalty": 3967.09, "id": "resp-abc123", "incomplete_details": null, "instructions": null, "metadata": null, "model": "gpt-4", "object": "response", "output": [{"content": [{"text": "Hello! How can I help you today?", "type": "output_text"}], "id": "msg-abc123", "role": "assistant", "type": "message"}], "parallel_tool_calls": true, "presence_penalty": 7468.94, "status": "completed", "temperature": null, "tool_choice": "auto", "tools": [], "top_p": null} + application/json: {"completed_at": 1704067210, "created_at": 1704067200, "error": null, "frequency_penalty": null, "id": "resp-abc123", "incomplete_details": null, "instructions": null, "metadata": null, "model": "gpt-4", "object": "response", "output": [{"content": [{"text": "Hello! How can I help you today?", "type": "output_text"}], "id": "msg-abc123", "role": "assistant", "type": "message"}], "parallel_tool_calls": true, "presence_penalty": null, "status": "completed", "temperature": null, "tool_choice": "auto", "tools": [], "top_p": null} "400": application/json: {"error": {"code": 400, "message": "Invalid request parameters"}} "401": @@ -11041,7 +11009,7 @@ examples: slug: "gpt-4" responses: "200": - application/json: {"data": {"architecture": {"input_modalities": ["text"], "modality": "text->text", "output_modalities": ["text"]}, "canonical_slug": "openai/gpt-4", "context_length": 8192, "created": 1692901234, "default_parameters": {}, "id": "openai/gpt-4", "links": {"details": "/api/v1/models/openai/gpt-5.4/endpoints"}, "name": "GPT-4", "per_request_limits": null, "pricing": {"completion": "0.00006", "prompt": "0.00003"}, "supported_parameters": ["temperature", "top_p", "max_tokens"], "supported_voices": null, "top_provider": {"is_moderated": true}}} + application/json: {"data": {"architecture": {"input_modalities": ["text"], "modality": "text->text", "output_modalities": ["text"]}, "canonical_slug": "openai/gpt-4", "context_length": 8192, "created": 1692901234, "default_parameters": null, "id": "openai/gpt-4", "links": {"details": "/api/v1/models/openai/gpt-4/endpoints"}, "name": "GPT-4", "per_request_limits": null, "pricing": {"completion": "0.00006", "prompt": "0.00003"}, "supported_parameters": ["temperature", "top_p", "max_tokens"], "supported_voices": null, "top_provider": {"is_moderated": true}}} "404": application/json: {"error": {"code": 404, "message": "Resource not found"}} "500": @@ -11209,7 +11177,3 @@ examples: "500": application/json: {"error": {"code": 500, "message": "Internal Server Error"}} examplesVersion: 1.0.2 -releaseNotes: | - ## Python SDK Changes: - * `open_router.beta.responses.send()`: `request.previous_response_id` **Changed** (Breaking ⚠️) - * `open_router.presets.create_presets_responses()`: `request.previous_response_id` **Changed** (Breaking ⚠️) diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 7b3bc1d4..2604607d 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -36,7 +36,7 @@ generation: documentation: mintlify preApplyUnionDiscriminators: true python: - version: 0.11.38 + version: 0.11.39 additionalDependencies: dev: {} main: {} diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml index 62da66cb..85a38074 100644 --- a/.speakeasy/out.openapi.yaml +++ b/.speakeasy/out.openapi.yaml @@ -24,159 +24,163 @@ components: Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings. schemas: AABenchmarkEntry: - description: Artificial Analysis benchmark index scores. + description: 'Artificial Analysis benchmark index scores.' example: agentic_index: 55.8 coding_index: 63.2 intelligence_index: 71.4 properties: agentic_index: - description: Artificial Analysis Agentic Index score + description: 'Artificial Analysis Agentic Index score' example: 55.8 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' coding_index: - description: Artificial Analysis Coding Index score + description: 'Artificial Analysis Coding Index score' example: 63.2 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' intelligence_index: - description: Artificial Analysis Intelligence Index score + description: 'Artificial Analysis Intelligence Index score' example: 71.4 - format: double - nullable: true - type: number - required: - - intelligence_index - - coding_index - - agentic_index - type: object + format: 'double' + type: + - 'number' + - 'null' + required: + - 'intelligence_index' + - 'coding_index' + - 'agentic_index' + type: 'object' ActivityItem: example: byok_usage_inference: 0.012 completion_tokens: 125 date: '2025-08-24' - endpoint_id: 550e8400-e29b-41d4-a716-446655440000 - model: openai/gpt-4.1 - model_permaslug: openai/gpt-4.1-2025-04-14 + endpoint_id: '550e8400-e29b-41d4-a716-446655440000' + model: 'openai/gpt-4.1' + model_permaslug: 'openai/gpt-4.1-2025-04-14' prompt_tokens: 50 - provider_name: OpenAI + provider_name: 'OpenAI' reasoning_tokens: 25 requests: 5 usage: 0.015 properties: byok_usage_inference: - description: BYOK inference cost in USD (external credits spent) + description: 'BYOK inference cost in USD (external credits spent)' example: 0.012 - format: double - type: number + format: 'double' + type: 'number' completion_tokens: - description: Total completion tokens generated + description: 'Total completion tokens generated' example: 125 - type: integer + type: 'integer' date: - description: Date of the activity (YYYY-MM-DD format) + description: 'Date of the activity (YYYY-MM-DD format)' example: '2025-08-24' - type: string + type: 'string' endpoint_id: - description: Unique identifier for the endpoint - example: 550e8400-e29b-41d4-a716-446655440000 - type: string + description: 'Unique identifier for the endpoint' + example: '550e8400-e29b-41d4-a716-446655440000' + type: 'string' model: - description: Model slug (e.g., "openai/gpt-4.1") - example: openai/gpt-4.1 - type: string + description: 'Model slug (e.g., "openai/gpt-4.1")' + example: 'openai/gpt-4.1' + type: 'string' model_permaslug: - description: Model permaslug (e.g., "openai/gpt-4.1-2025-04-14") - example: openai/gpt-4.1-2025-04-14 - type: string + description: 'Model permaslug (e.g., "openai/gpt-4.1-2025-04-14")' + example: 'openai/gpt-4.1-2025-04-14' + type: 'string' prompt_tokens: - description: Total prompt tokens used + description: 'Total prompt tokens used' example: 50 - type: integer + type: 'integer' provider_name: - description: Name of the provider serving this endpoint - example: OpenAI - type: string + description: 'Name of the provider serving this endpoint' + example: 'OpenAI' + type: 'string' reasoning_tokens: - description: Total reasoning tokens used + description: 'Total reasoning tokens used' example: 25 - type: integer + type: 'integer' requests: - description: Number of requests made + description: 'Number of requests made' example: 5 - type: integer + type: 'integer' usage: - description: Total cost in USD (OpenRouter credits spent) + description: 'Total cost in USD (OpenRouter credits spent)' example: 0.015 - format: double - type: number - required: - - date - - model - - model_permaslug - - endpoint_id - - provider_name - - usage - - byok_usage_inference - - requests - - prompt_tokens - - completion_tokens - - reasoning_tokens - type: object + format: 'double' + type: 'number' + required: + - 'date' + - 'model' + - 'model_permaslug' + - 'endpoint_id' + - 'provider_name' + - 'usage' + - 'byok_usage_inference' + - 'requests' + - 'prompt_tokens' + - 'completion_tokens' + - 'reasoning_tokens' + type: 'object' ActivityResponse: example: data: - byok_usage_inference: 0.012 completion_tokens: 125 date: '2025-08-24' - endpoint_id: 550e8400-e29b-41d4-a716-446655440000 - model: openai/gpt-4.1 - model_permaslug: openai/gpt-4.1-2025-04-14 + endpoint_id: '550e8400-e29b-41d4-a716-446655440000' + model: 'openai/gpt-4.1' + model_permaslug: 'openai/gpt-4.1-2025-04-14' prompt_tokens: 50 - provider_name: OpenAI + provider_name: 'OpenAI' reasoning_tokens: 25 requests: 5 usage: 0.015 properties: data: - description: List of activity items + description: 'List of activity items' items: $ref: '#/components/schemas/ActivityItem' - type: array + type: 'array' required: - - data - type: object + - 'data' + type: 'object' AdditionalToolsItem: - description: Additional tools made available to the model at this point in the input + description: 'Additional tools made available to the model at this point in the input' example: - role: developer + role: 'developer' tools: - - name: get_weather + - name: 'get_weather' parameters: properties: location: - type: string - type: object - type: function - type: additional_tools + type: 'string' + type: 'object' + type: 'function' + type: 'additional_tools' properties: id: - nullable: true - type: string + type: + - 'string' + - 'null' role: enum: - - unknown - - user - - assistant - - system - - critic - - discriminator - - developer - - tool - type: string + - 'unknown' + - 'user' + - 'assistant' + - 'system' + - 'critic' + - 'discriminator' + - 'developer' + - 'tool' + type: 'string' x-speakeasy-unknown-values: allow tools: items: @@ -184,26 +188,26 @@ components: - allOf: - $ref: '#/components/schemas/FunctionTool' - properties: {} - type: object - description: Function tool definition + type: 'object' + description: 'Function tool definition' example: - description: Get the current weather in a location - name: get_weather + description: 'Get the current weather in a location' + name: 'get_weather' parameters: properties: location: - description: The city and state - type: string + description: 'The city and state' + type: 'string' unit: enum: - - celsius - - fahrenheit - type: string + - 'celsius' + - 'fahrenheit' + type: 'string' x-speakeasy-unknown-values: allow required: - - location - type: object - type: function + - 'location' + type: 'object' + type: 'function' - $ref: '#/components/schemas/Preview_WebSearchServerTool' - $ref: '#/components/schemas/Preview_20250311_WebSearchServerTool' - $ref: '#/components/schemas/Legacy_WebSearchServerTool' @@ -230,165 +234,150 @@ components: - $ref: '#/components/schemas/ApplyPatchServerTool_OpenRouter' - $ref: '#/components/schemas/BashServerTool' - $ref: '#/components/schemas/ShellServerTool_OpenRouter' - - additionalProperties: - nullable: true + - additionalProperties: {} properties: type: - type: string + type: 'string' required: - - type - type: object - type: array + - 'type' + type: 'object' + type: 'array' type: enum: - - additional_tools - type: string + - 'additional_tools' + type: 'string' required: - - type - - role - - tools - type: object + - 'type' + - 'role' + - 'tools' + type: 'object' AdvisorNestedTool: - additionalProperties: - nullable: true - description: >- - A tool made available to the advisor sub-agent. Only OpenRouter server tools (e.g. openrouter:web_search) are supported; function tools are rejected because the advisor has no way to execute them. The advisor tool may not list itself. + additionalProperties: {} + description: 'A tool made available to the advisor sub-agent. Only OpenRouter server tools (e.g. openrouter:web_search) are supported; function tools are rejected because the advisor has no way to execute them. The advisor tool may not list itself.' example: - type: openrouter:web_search + type: 'openrouter:web_search' properties: parameters: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' type: - type: string + type: 'string' required: - - type - type: object + - 'type' + type: 'object' AdvisorReasoning: - description: >- - Reasoning configuration forwarded to the advisor call. Use this to control reasoning effort and token budget for models that support extended thinking. + description: 'Reasoning configuration forwarded to the advisor call. Use this to control reasoning effort and token budget for models that support extended thinking.' example: - effort: high + effort: 'high' properties: effort: - description: Reasoning effort level for the advisor call. - enum: - - max - - xhigh - - high - - medium - - low - - minimal - - none - type: string + description: 'Reasoning effort level for the advisor call.' + enum: + - 'max' + - 'xhigh' + - 'high' + - 'medium' + - 'low' + - 'minimal' + - 'none' + type: 'string' x-speakeasy-unknown-values: allow max_tokens: - description: Maximum number of reasoning tokens the advisor may use. - type: integer - type: object + description: 'Maximum number of reasoning tokens the advisor may use.' + type: 'integer' + type: 'object' AdvisorServerTool_OpenRouter: - description: >- - OpenRouter built-in server tool: consults a higher-intelligence advisor model (any OpenRouter model) for guidance mid-generation and returns its response. The advisor may run as a sub-agent with its own tools. Include multiple entries to offer several named advisors; at most one entry may omit `name` to act as the default advisor. + description: 'OpenRouter built-in server tool: consults a higher-intelligence advisor model (any OpenRouter model) for guidance mid-generation and returns its response. The advisor may run as a sub-agent with its own tools. Include multiple entries to offer several named advisors; at most one entry may omit `name` to act as the default advisor.' example: parameters: - model: ~anthropic/claude-opus-latest - name: reviewer - type: openrouter:advisor + model: '~anthropic/claude-opus-latest' + name: 'reviewer' + type: 'openrouter:advisor' properties: parameters: $ref: '#/components/schemas/AdvisorServerToolConfig' type: enum: - - openrouter:advisor - type: string + - 'openrouter:advisor' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' AdvisorServerToolConfig: - description: Configuration for one openrouter:advisor server tool entry. + description: 'Configuration for one openrouter:advisor server tool entry.' example: - model: ~anthropic/claude-opus-latest - name: reviewer + model: '~anthropic/claude-opus-latest' + name: 'reviewer' properties: forward_transcript: - description: >- - When true, the full parent conversation is forwarded to the advisor so it sees the same context the executor does (and the tool-call `prompt`, if given, is appended as a final user turn). When false or omitted, the advisor receives only the `prompt` the executor passes in the tool call. + description: 'When true, the full parent conversation is forwarded to the advisor so it sees the same context the executor does (and the tool-call `prompt`, if given, is appended as a final user turn). When false or omitted, the advisor receives only the `prompt` the executor passes in the tool call.' example: false - type: boolean + type: 'boolean' instructions: - description: >- - System instructions for the advisor sub-agent. When omitted, the advisor responds with no system prompt of its own. - example: You are a senior staff engineer. Give a focused, decisive plan. - type: string + description: 'System instructions for the advisor sub-agent. When omitted, the advisor responds with no system prompt of its own.' + example: 'You are a senior staff engineer. Give a focused, decisive plan.' + type: 'string' max_completion_tokens: - description: >- - Maximum number of output tokens (including reasoning) the advisor may produce. When omitted, the provider's default applies. + description: 'Maximum number of output tokens (including reasoning) the advisor may produce. When omitted, the provider''s default applies.' example: 2048 - type: integer + type: 'integer' max_tool_calls: - description: >- - Maximum number of tool-calling steps the advisor sub-agent may take during its agentic loop. Capped at 25. Only relevant when the advisor is given tools. + description: 'Maximum number of tool-calling steps the advisor sub-agent may take during its agentic loop. Capped at 25. Only relevant when the advisor is given tools.' example: 5 maximum: 25 minimum: 1 - type: integer + type: 'integer' model: - description: >- - Slug of the advisor model to consult (any OpenRouter model). When omitted, the executor can choose it via the tool call's `model` argument; if neither is set, the model from the outer API request is used. The advisor tool itself cannot be the advisor model. - example: ~anthropic/claude-opus-latest - type: string + description: 'Slug of the advisor model to consult (any OpenRouter model). When omitted, the executor can choose it via the tool call''s `model` argument; if neither is set, the model from the outer API request is used. The advisor tool itself cannot be the advisor model.' + example: '~anthropic/claude-opus-latest' + type: 'string' name: - description: >- - Optional name for this advisor. The model sees one tool per named advisor (and one default for an unnamed entry). Names must be unique across advisor entries. Letters, digits, spaces, underscores, and dashes; trimmed; 1–64 chars. - example: reviewer + description: 'Optional name for this advisor. The model sees one tool per named advisor (and one default for an unnamed entry). Names must be unique across advisor entries. Letters, digits, spaces, underscores, and dashes; trimmed; 1–64 chars.' + example: 'reviewer' maxLength: 64 minLength: 1 - pattern: ^[a-zA-Z0-9 _-]+$ - type: string + pattern: '^[a-zA-Z0-9 _-]+$' + type: 'string' reasoning: $ref: '#/components/schemas/AdvisorReasoning' stream: - description: >- - When true, the advisor's advice streams incrementally as it is produced. In the Responses API this emits `response.output_text.delta` events targeting the advisor output item; the final `advice` field is still set on the completed item. Has no effect on the Chat Completions API (where the advice arrives only as the final tool result). When false or omitted, the advice arrives only as the final result. + description: 'When true, the advisor''s advice streams incrementally as it is produced. In the Responses API this emits `response.output_text.delta` events targeting the advisor output item; the final `advice` field is still set on the completed item. Has no effect on the Chat Completions API (where the advice arrives only as the final tool result). When false or omitted, the advice arrives only as the final result.' example: false - type: boolean + type: 'boolean' temperature: - description: Sampling temperature forwarded to the advisor call. When omitted, the provider's default applies. + description: 'Sampling temperature forwarded to the advisor call. When omitted, the provider''s default applies.' example: 0.7 - format: double - type: number + format: 'double' + type: 'number' tools: - description: >- - Tools the advisor sub-agent may use while forming its advice. The advisor runs as an agentic sub-agent over these tools, then returns its text. Only OpenRouter server tools are supported — function tools are rejected — and the list must not include the advisor tool itself. + description: 'Tools the advisor sub-agent may use while forming its advice. The advisor runs as an agentic sub-agent over these tools, then returns its text. Only OpenRouter server tools are supported — function tools are rejected — and the list must not include the advisor tool itself.' items: $ref: '#/components/schemas/AdvisorNestedTool' - type: array - type: object + type: 'array' + type: 'object' AgentMessageItem: - additionalProperties: - nullable: true - description: A message routed between agents in a multi-agent session + additionalProperties: {} + description: 'A message routed between agents in a multi-agent session' example: - author: /root/worker + author: '/root/worker' content: - - text: Task complete. - type: input_text - recipient: /root - type: agent_message + - text: 'Task complete.' + type: 'input_text' + recipient: '/root' + type: 'agent_message' properties: agent: - additionalProperties: - nullable: true - nullable: true + additionalProperties: {} properties: agent_name: - type: string + type: 'string' required: - - agent_name - type: object + - 'agent_name' + type: + - 'object' + - 'null' author: - type: string + type: 'string' content: items: oneOf: @@ -396,156 +385,155 @@ components: - allOf: - $ref: '#/components/schemas/InputImage' - properties: {} - type: object - description: Image input content item + type: 'object' + description: 'Image input content item' example: - detail: auto - image_url: https://example.com/image.jpg - type: input_image - - additionalProperties: - nullable: true + detail: 'auto' + image_url: 'https://example.com/image.jpg' + type: 'input_image' + - additionalProperties: {} properties: encrypted_content: - type: string + type: 'string' type: enum: - - encrypted_content - type: string + - 'encrypted_content' + type: 'string' required: - - type - - encrypted_content - type: object - type: array + - 'type' + - 'encrypted_content' + type: 'object' + type: 'array' id: - nullable: true - type: string + type: + - 'string' + - 'null' recipient: - type: string + type: 'string' type: enum: - - agent_message - type: string + - 'agent_message' + type: 'string' required: - - type - - author - - recipient - - content - type: object + - 'type' + - 'author' + - 'recipient' + - 'content' + type: 'object' AnnotationAddedEvent: allOf: - $ref: '#/components/schemas/BaseAnnotationAddedEvent' - properties: {} - type: object - description: Event emitted when a text annotation is added to output + type: 'object' + description: 'Event emitted when a text annotation is added to output' example: annotation: end_index: 7 start_index: 0 - title: Example - type: url_citation - url: https://example.com + title: 'Example' + type: 'url_citation' + url: 'https://example.com' annotation_index: 0 content_index: 0 - item_id: item-1 + item_id: 'item-1' output_index: 0 sequence_number: 5 - type: response.output_text.annotation.added + type: 'response.output_text.annotation.added' AnthropicAdvisorMessageUsageIteration: allOf: - $ref: '#/components/schemas/AnthropicBaseUsageIteration' - properties: model: - type: string + type: 'string' type: enum: - - advisor_message - type: string + - 'advisor_message' + type: 'string' required: - - type - - model - type: object + - 'type' + - 'model' + type: 'object' example: cache_creation: null cache_creation_input_tokens: 0 cache_read_input_tokens: 0 input_tokens: 823 - model: claude-opus-4-6 + model: 'claude-opus-4-6' output_tokens: 1612 - type: advisor_message + type: 'advisor_message' AnthropicAdvisorToolResult: example: content: - text: Advisor response text - type: advisor_result - tool_use_id: srvtoolu_01abc - type: advisor_tool_result + text: 'Advisor response text' + type: 'advisor_result' + tool_use_id: 'srvtoolu_01abc' + type: 'advisor_tool_result' properties: content: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' tool_use_id: - type: string + type: 'string' type: enum: - - advisor_tool_result - type: string + - 'advisor_tool_result' + type: 'string' required: - - type - - tool_use_id - - content - type: object + - 'type' + - 'tool_use_id' + - 'content' + type: 'object' AnthropicAllowedCallers: example: - - direct + - 'direct' items: enum: - - direct - - code_execution_20250825 - - code_execution_20260120 - type: string + - 'direct' + - 'code_execution_20250825' + - 'code_execution_20260120' + type: 'string' x-speakeasy-unknown-values: allow - type: array + type: 'array' AnthropicBase64ImageSource: example: - data: /9j/4AAQ... - media_type: image/jpeg - type: base64 + data: '/9j/4AAQ...' + media_type: 'image/jpeg' + type: 'base64' properties: data: - type: string + type: 'string' media_type: $ref: '#/components/schemas/AnthropicImageMimeType' type: enum: - - base64 - type: string + - 'base64' + type: 'string' required: - - type - - media_type - - data - type: object + - 'type' + - 'media_type' + - 'data' + type: 'object' AnthropicBase64PdfSource: example: - data: JVBERi0x... - media_type: application/pdf - type: base64 + data: 'JVBERi0x...' + media_type: 'application/pdf' + type: 'base64' properties: data: - type: string + type: 'string' media_type: enum: - - application/pdf - type: string + - 'application/pdf' + type: 'string' type: enum: - - base64 - type: string + - 'base64' + type: 'string' required: - - type - - media_type - - data - type: object + - 'type' + - 'media_type' + - 'data' + type: 'object' AnthropicBaseUsageIteration: example: cache_creation: null @@ -557,727 +545,743 @@ components: cache_creation: $ref: '#/components/schemas/AnthropicIterationCacheCreation' cache_creation_input_tokens: - type: integer + type: 'integer' cache_read_input_tokens: - type: integer + type: 'integer' input_tokens: - type: integer + type: 'integer' output_tokens: - type: integer - type: object + type: 'integer' + type: 'object' AnthropicBashCodeExecutionContent: discriminator: mapping: bash_code_execution_result: '#/components/schemas/AnthropicBashCodeExecutionResult' bash_code_execution_tool_result_error: '#/components/schemas/AnthropicBashCodeExecutionToolResultError' - propertyName: type + propertyName: 'type' example: content: [] return_code: 0 stderr: '' - stdout: Hello - type: bash_code_execution_result + stdout: 'Hello' + type: 'bash_code_execution_result' oneOf: - $ref: '#/components/schemas/AnthropicBashCodeExecutionToolResultError' - $ref: '#/components/schemas/AnthropicBashCodeExecutionResult' AnthropicBashCodeExecutionOutput: example: - file_id: file_01abc - type: bash_code_execution_output + file_id: 'file_01abc' + type: 'bash_code_execution_output' properties: file_id: - type: string + type: 'string' type: enum: - - bash_code_execution_output - type: string + - 'bash_code_execution_output' + type: 'string' required: - - file_id - - type - type: object + - 'file_id' + - 'type' + type: 'object' AnthropicBashCodeExecutionResult: example: content: [] return_code: 0 stderr: '' - stdout: Hello - type: bash_code_execution_result + stdout: 'Hello' + type: 'bash_code_execution_result' properties: content: items: $ref: '#/components/schemas/AnthropicBashCodeExecutionOutput' - type: array + type: 'array' return_code: - type: integer + type: 'integer' stderr: - type: string + type: 'string' stdout: - type: string + type: 'string' type: enum: - - bash_code_execution_result - type: string + - 'bash_code_execution_result' + type: 'string' required: - - content - - return_code - - stderr - - stdout - - type - type: object + - 'content' + - 'return_code' + - 'stderr' + - 'stdout' + - 'type' + type: 'object' AnthropicBashCodeExecutionToolResult: example: content: content: [] return_code: 0 stderr: '' - stdout: Hello - type: bash_code_execution_result - tool_use_id: srvtoolu_01abc - type: bash_code_execution_tool_result + stdout: 'Hello' + type: 'bash_code_execution_result' + tool_use_id: 'srvtoolu_01abc' + type: 'bash_code_execution_tool_result' properties: content: $ref: '#/components/schemas/AnthropicBashCodeExecutionContent' tool_use_id: - type: string + type: 'string' type: enum: - - bash_code_execution_tool_result - type: string + - 'bash_code_execution_tool_result' + type: 'string' required: - - type - - content - - tool_use_id - type: object + - 'type' + - 'content' + - 'tool_use_id' + type: 'object' AnthropicBashCodeExecutionToolResultError: example: - error_code: unavailable - type: bash_code_execution_tool_result_error + error_code: 'unavailable' + type: 'bash_code_execution_tool_result_error' properties: error_code: enum: - - invalid_tool_input - - unavailable - - too_many_requests - - execution_time_exceeded - - output_file_too_large - type: string + - 'invalid_tool_input' + - 'unavailable' + - 'too_many_requests' + - 'execution_time_exceeded' + - 'output_file_too_large' + type: 'string' x-speakeasy-unknown-values: allow type: enum: - - bash_code_execution_tool_result_error - type: string + - 'bash_code_execution_tool_result_error' + type: 'string' required: - - error_code - - type - type: object + - 'error_code' + - 'type' + type: 'object' AnthropicCacheControlDirective: - description: >- - Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format. + description: 'Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider''s native format.' example: - type: ephemeral + type: 'ephemeral' properties: ttl: $ref: '#/components/schemas/AnthropicCacheControlTtl' type: enum: - - ephemeral - type: string + - 'ephemeral' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' AnthropicCacheControlTtl: enum: - - 5m - - 1h - example: 5m - type: string + - '5m' + - '1h' + example: '5m' + type: 'string' x-speakeasy-unknown-values: allow AnthropicCacheCreation: example: ephemeral_1h_input_tokens: 0 ephemeral_5m_input_tokens: 100 - nullable: true properties: ephemeral_1h_input_tokens: - type: integer + type: 'integer' ephemeral_5m_input_tokens: - type: integer + type: 'integer' required: - - ephemeral_5m_input_tokens - - ephemeral_1h_input_tokens - type: object + - 'ephemeral_5m_input_tokens' + - 'ephemeral_1h_input_tokens' + type: + - 'object' + - 'null' AnthropicCaller: discriminator: mapping: code_execution_20250825: '#/components/schemas/AnthropicCodeExecution20250825Caller' code_execution_20260120: '#/components/schemas/AnthropicCodeExecution20260120Caller' direct: '#/components/schemas/AnthropicDirectCaller' - propertyName: type + propertyName: 'type' example: - type: direct + type: 'direct' oneOf: - $ref: '#/components/schemas/AnthropicDirectCaller' - $ref: '#/components/schemas/AnthropicCodeExecution20250825Caller' - $ref: '#/components/schemas/AnthropicCodeExecution20260120Caller' AnthropicCitationCharLocation: example: - cited_text: Example cited text + cited_text: 'Example cited text' document_index: 0 document_title: null end_char_index: 18 file_id: null start_char_index: 0 - type: char_location + type: 'char_location' properties: cited_text: - type: string + type: 'string' document_index: - type: integer + type: 'integer' document_title: - nullable: true - type: string + type: + - 'string' + - 'null' end_char_index: - type: integer + type: 'integer' file_id: - nullable: true - type: string + type: + - 'string' + - 'null' start_char_index: - type: integer + type: 'integer' type: enum: - - char_location - type: string + - 'char_location' + type: 'string' required: - - type - - cited_text - - document_index - - document_title - - start_char_index - - end_char_index - - file_id - type: object + - 'type' + - 'cited_text' + - 'document_index' + - 'document_title' + - 'start_char_index' + - 'end_char_index' + - 'file_id' + type: 'object' AnthropicCitationCharLocationParam: example: - cited_text: Example cited text + cited_text: 'Example cited text' document_index: 0 document_title: null end_char_index: 18 start_char_index: 0 - type: char_location + type: 'char_location' properties: cited_text: - type: string + type: 'string' document_index: - type: integer + type: 'integer' document_title: - nullable: true - type: string + type: + - 'string' + - 'null' end_char_index: - type: integer + type: 'integer' start_char_index: - type: integer + type: 'integer' type: enum: - - char_location - type: string + - 'char_location' + type: 'string' required: - - type - - cited_text - - document_index - - document_title - - start_char_index - - end_char_index - type: object + - 'type' + - 'cited_text' + - 'document_index' + - 'document_title' + - 'start_char_index' + - 'end_char_index' + type: 'object' AnthropicCitationContentBlockLocation: example: - cited_text: Example cited text + cited_text: 'Example cited text' document_index: 0 document_title: null end_block_index: 1 file_id: null start_block_index: 0 - type: content_block_location + type: 'content_block_location' properties: cited_text: - type: string + type: 'string' document_index: - type: integer + type: 'integer' document_title: - nullable: true - type: string + type: + - 'string' + - 'null' end_block_index: - type: integer + type: 'integer' file_id: - nullable: true - type: string + type: + - 'string' + - 'null' start_block_index: - type: integer + type: 'integer' type: enum: - - content_block_location - type: string + - 'content_block_location' + type: 'string' required: - - type - - cited_text - - document_index - - document_title - - start_block_index - - end_block_index - - file_id - type: object + - 'type' + - 'cited_text' + - 'document_index' + - 'document_title' + - 'start_block_index' + - 'end_block_index' + - 'file_id' + type: 'object' AnthropicCitationContentBlockLocationParam: example: - cited_text: Example cited text + cited_text: 'Example cited text' document_index: 0 document_title: null end_block_index: 1 start_block_index: 0 - type: content_block_location + type: 'content_block_location' properties: cited_text: - type: string + type: 'string' document_index: - type: integer + type: 'integer' document_title: - nullable: true - type: string + type: + - 'string' + - 'null' end_block_index: - type: integer + type: 'integer' start_block_index: - type: integer + type: 'integer' type: enum: - - content_block_location - type: string + - 'content_block_location' + type: 'string' required: - - type - - cited_text - - document_index - - document_title - - start_block_index - - end_block_index - type: object + - 'type' + - 'cited_text' + - 'document_index' + - 'document_title' + - 'start_block_index' + - 'end_block_index' + type: 'object' AnthropicCitationPageLocation: example: - cited_text: Example cited text + cited_text: 'Example cited text' document_index: 0 document_title: null end_page_number: 2 file_id: null start_page_number: 1 - type: page_location + type: 'page_location' properties: cited_text: - type: string + type: 'string' document_index: - type: integer + type: 'integer' document_title: - nullable: true - type: string + type: + - 'string' + - 'null' end_page_number: - type: integer + type: 'integer' file_id: - nullable: true - type: string + type: + - 'string' + - 'null' start_page_number: - type: integer + type: 'integer' type: enum: - - page_location - type: string + - 'page_location' + type: 'string' required: - - type - - cited_text - - document_index - - document_title - - start_page_number - - end_page_number - - file_id - type: object + - 'type' + - 'cited_text' + - 'document_index' + - 'document_title' + - 'start_page_number' + - 'end_page_number' + - 'file_id' + type: 'object' AnthropicCitationPageLocationParam: example: - cited_text: Example cited text + cited_text: 'Example cited text' document_index: 0 document_title: null end_page_number: 2 start_page_number: 1 - type: page_location + type: 'page_location' properties: cited_text: - type: string + type: 'string' document_index: - type: integer + type: 'integer' document_title: - nullable: true - type: string + type: + - 'string' + - 'null' end_page_number: - type: integer + type: 'integer' start_page_number: - type: integer + type: 'integer' type: enum: - - page_location - type: string + - 'page_location' + type: 'string' required: - - type - - cited_text - - document_index - - document_title - - start_page_number - - end_page_number - type: object + - 'type' + - 'cited_text' + - 'document_index' + - 'document_title' + - 'start_page_number' + - 'end_page_number' + type: 'object' AnthropicCitationsConfig: default: null example: enabled: true - nullable: true properties: enabled: - type: boolean + type: 'boolean' required: - - enabled - type: object + - 'enabled' + type: + - 'object' + - 'null' AnthropicCitationSearchResultLocation: example: - cited_text: Example cited text + cited_text: 'Example cited text' end_block_index: 1 search_result_index: 0 - source: example_source + source: 'example_source' start_block_index: 0 - title: Example Result - type: search_result_location + title: 'Example Result' + type: 'search_result_location' properties: cited_text: - type: string + type: 'string' end_block_index: - type: integer + type: 'integer' search_result_index: - type: integer + type: 'integer' source: - type: string + type: 'string' start_block_index: - type: integer + type: 'integer' title: - nullable: true - type: string - type: - enum: - - search_result_location - type: string - required: - - type - - cited_text - - search_result_index - - source - - title - - start_block_index - - end_block_index - type: object + type: + - 'string' + - 'null' + type: + enum: + - 'search_result_location' + type: 'string' + required: + - 'type' + - 'cited_text' + - 'search_result_index' + - 'source' + - 'title' + - 'start_block_index' + - 'end_block_index' + type: 'object' AnthropicCitationSearchResultLocationParam: example: - cited_text: Example cited text + cited_text: 'Example cited text' end_block_index: 1 search_result_index: 0 - source: example_source + source: 'example_source' start_block_index: 0 - title: Example Result - type: search_result_location + title: 'Example Result' + type: 'search_result_location' properties: cited_text: - type: string + type: 'string' end_block_index: - type: integer + type: 'integer' search_result_index: - type: integer + type: 'integer' source: - type: string + type: 'string' start_block_index: - type: integer + type: 'integer' title: - nullable: true - type: string - type: - enum: - - search_result_location - type: string - required: - - type - - cited_text - - search_result_index - - source - - title - - start_block_index - - end_block_index - type: object + type: + - 'string' + - 'null' + type: + enum: + - 'search_result_location' + type: 'string' + required: + - 'type' + - 'cited_text' + - 'search_result_index' + - 'source' + - 'title' + - 'start_block_index' + - 'end_block_index' + type: 'object' AnthropicCitationWebSearchResultLocation: example: - cited_text: Example cited text - encrypted_index: enc_idx_0 - title: Example Page - type: web_search_result_location - url: https://example.com + cited_text: 'Example cited text' + encrypted_index: 'enc_idx_0' + title: 'Example Page' + type: 'web_search_result_location' + url: 'https://example.com' properties: cited_text: - type: string + type: 'string' encrypted_index: - type: string + type: 'string' title: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - web_search_result_location - type: string + - 'web_search_result_location' + type: 'string' url: - type: string - required: - - type - - cited_text - - encrypted_index - - title - - url - type: object + type: 'string' + required: + - 'type' + - 'cited_text' + - 'encrypted_index' + - 'title' + - 'url' + type: 'object' AnthropicCitationWebSearchResultLocationParam: example: - cited_text: Example cited text - encrypted_index: enc_idx_0 - title: Example Page - type: web_search_result_location - url: https://example.com + cited_text: 'Example cited text' + encrypted_index: 'enc_idx_0' + title: 'Example Page' + type: 'web_search_result_location' + url: 'https://example.com' properties: cited_text: - type: string + type: 'string' encrypted_index: - type: string + type: 'string' title: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - web_search_result_location - type: string + - 'web_search_result_location' + type: 'string' url: - type: string - required: - - type - - cited_text - - encrypted_index - - title - - url - type: object + type: 'string' + required: + - 'type' + - 'cited_text' + - 'encrypted_index' + - 'title' + - 'url' + type: 'object' AnthropicCodeExecution20250825Caller: example: - tool_id: toolu_01abc - type: code_execution_20250825 + tool_id: 'toolu_01abc' + type: 'code_execution_20250825' properties: tool_id: - type: string + type: 'string' type: enum: - - code_execution_20250825 - type: string + - 'code_execution_20250825' + type: 'string' required: - - type - - tool_id - type: object + - 'type' + - 'tool_id' + type: 'object' AnthropicCodeExecution20260120Caller: example: - tool_id: toolu_01abc - type: code_execution_20260120 + tool_id: 'toolu_01abc' + type: 'code_execution_20260120' properties: tool_id: - type: string + type: 'string' type: enum: - - code_execution_20260120 - type: string + - 'code_execution_20260120' + type: 'string' required: - - type - - tool_id - type: object + - 'type' + - 'tool_id' + type: 'object' AnthropicCodeExecutionContent: discriminator: mapping: code_execution_result: '#/components/schemas/AnthropicCodeExecutionResult' code_execution_tool_result_error: '#/components/schemas/AnthropicCodeExecutionToolResultError' encrypted_code_execution_result: '#/components/schemas/AnthropicEncryptedCodeExecutionResult' - propertyName: type + propertyName: 'type' example: content: [] return_code: 0 stderr: '' - stdout: Hello - type: code_execution_result + stdout: 'Hello' + type: 'code_execution_result' oneOf: - $ref: '#/components/schemas/AnthropicCodeExecutionToolResultError' - $ref: '#/components/schemas/AnthropicCodeExecutionResult' - $ref: '#/components/schemas/AnthropicEncryptedCodeExecutionResult' AnthropicCodeExecutionOutput: example: - file_id: file_01abc - type: code_execution_output + file_id: 'file_01abc' + type: 'code_execution_output' properties: file_id: - type: string + type: 'string' type: enum: - - code_execution_output - type: string + - 'code_execution_output' + type: 'string' required: - - file_id - - type - type: object + - 'file_id' + - 'type' + type: 'object' AnthropicCodeExecutionResult: example: content: [] return_code: 0 stderr: '' - stdout: Hello - type: code_execution_result + stdout: 'Hello' + type: 'code_execution_result' properties: content: items: $ref: '#/components/schemas/AnthropicCodeExecutionOutput' - type: array + type: 'array' return_code: - type: integer + type: 'integer' stderr: - type: string + type: 'string' stdout: - type: string + type: 'string' type: enum: - - code_execution_result - type: string + - 'code_execution_result' + type: 'string' required: - - content - - return_code - - stderr - - stdout - - type - type: object + - 'content' + - 'return_code' + - 'stderr' + - 'stdout' + - 'type' + type: 'object' AnthropicCodeExecutionToolResult: example: content: content: [] return_code: 0 stderr: '' - stdout: Hello - type: code_execution_result - tool_use_id: srvtoolu_01abc - type: code_execution_tool_result + stdout: 'Hello' + type: 'code_execution_result' + tool_use_id: 'srvtoolu_01abc' + type: 'code_execution_tool_result' properties: content: $ref: '#/components/schemas/AnthropicCodeExecutionContent' tool_use_id: - type: string + type: 'string' type: enum: - - code_execution_tool_result - type: string + - 'code_execution_tool_result' + type: 'string' required: - - type - - content - - tool_use_id - type: object + - 'type' + - 'content' + - 'tool_use_id' + type: 'object' AnthropicCodeExecutionToolResultError: example: - error_code: unavailable - type: code_execution_tool_result_error + error_code: 'unavailable' + type: 'code_execution_tool_result_error' properties: error_code: $ref: '#/components/schemas/AnthropicServerToolErrorCode' type: enum: - - code_execution_tool_result_error - type: string + - 'code_execution_tool_result_error' + type: 'string' required: - - error_code - - type - type: object + - 'error_code' + - 'type' + type: 'object' AnthropicCompactionBlock: example: - content: Compacted summary of conversation. - type: compaction + content: 'Compacted summary of conversation.' + type: 'compaction' properties: content: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - compaction - type: string + - 'compaction' + type: 'string' required: - - type - - content - type: object + - 'type' + - 'content' + type: 'object' AnthropicCompactionUsageIteration: allOf: - $ref: '#/components/schemas/AnthropicBaseUsageIteration' - properties: type: enum: - - compaction - type: string + - 'compaction' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' example: cache_creation: null cache_creation_input_tokens: 0 cache_read_input_tokens: 0 input_tokens: 50 output_tokens: 25 - type: compaction + type: 'compaction' AnthropicContainer: example: expires_at: '2026-04-08T00:00:00Z' - id: ctr_01abc - nullable: true + id: 'ctr_01abc' properties: expires_at: - type: string + type: 'string' id: - type: string + type: 'string' required: - - id - - expires_at - type: object + - 'id' + - 'expires_at' + type: + - 'object' + - 'null' AnthropicContainerUpload: example: - file_id: file_01abc - type: container_upload + file_id: 'file_01abc' + type: 'container_upload' properties: file_id: - type: string + type: 'string' type: enum: - - container_upload - type: string + - 'container_upload' + type: 'string' required: - - type - - file_id - type: object + - 'type' + - 'file_id' + type: 'object' AnthropicDirectCaller: example: - type: direct + type: 'direct' properties: type: enum: - - direct - type: string + - 'direct' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' AnthropicDocumentBlock: example: citations: null source: - data: Hello, world! - media_type: text/plain - type: text + data: 'Hello, world!' + media_type: 'text/plain' + type: 'text' title: null - type: document + type: 'document' properties: citations: $ref: '#/components/schemas/AnthropicCitationsConfig' @@ -1286,36 +1290,39 @@ components: - $ref: '#/components/schemas/AnthropicBase64PdfSource' - $ref: '#/components/schemas/AnthropicPlainTextSource' title: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - document - type: string + - 'document' + type: 'string' required: - - source - - title - - type - type: object + - 'source' + - 'title' + - 'type' + type: 'object' AnthropicDocumentBlockParam: example: source: - data: Hello, world! - media_type: text/plain - type: text - type: document + data: 'Hello, world!' + media_type: 'text/plain' + type: 'text' + type: 'document' properties: cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' citations: - nullable: true properties: enabled: - type: boolean - type: object + type: 'boolean' + type: + - 'object' + - 'null' context: - nullable: true - type: string + type: + - 'string' + - 'null' source: oneOf: - $ref: '#/components/schemas/AnthropicBase64PdfSource' @@ -1323,89 +1330,90 @@ components: - properties: content: anyOf: - - type: string + - type: 'string' - items: discriminator: mapping: image: '#/components/schemas/AnthropicImageBlockParam' text: '#/components/schemas/AnthropicTextBlockParam' - propertyName: type + propertyName: 'type' oneOf: - $ref: '#/components/schemas/AnthropicTextBlockParam' - $ref: '#/components/schemas/AnthropicImageBlockParam' - type: array + type: 'array' type: enum: - - content - type: string + - 'content' + type: 'string' required: - - type - - content - type: object + - 'type' + - 'content' + type: 'object' - $ref: '#/components/schemas/AnthropicUrlPdfSource' - $ref: '#/components/schemas/AnthropicFileDocumentSource' title: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - document - type: string + - 'document' + type: 'string' required: - - type - - source - type: object + - 'type' + - 'source' + type: 'object' AnthropicEncryptedCodeExecutionResult: example: content: [] - encrypted_stdout: enc_stdout + encrypted_stdout: 'enc_stdout' return_code: 0 stderr: '' - type: encrypted_code_execution_result + type: 'encrypted_code_execution_result' properties: content: items: $ref: '#/components/schemas/AnthropicCodeExecutionOutput' - type: array + type: 'array' encrypted_stdout: - type: string + type: 'string' return_code: - type: integer + type: 'integer' stderr: - type: string + type: 'string' type: enum: - - encrypted_code_execution_result - type: string + - 'encrypted_code_execution_result' + type: 'string' required: - - content - - encrypted_stdout - - return_code - - stderr - - type - type: object + - 'content' + - 'encrypted_stdout' + - 'return_code' + - 'stderr' + - 'type' + type: 'object' AnthropicFileDocumentSource: example: - file_id: file_011CNha8iCJcU1wXNR6q4V8w - type: file + file_id: 'file_011CNha8iCJcU1wXNR6q4V8w' + type: 'file' properties: file_id: - type: string + type: 'string' type: enum: - - file - type: string + - 'file' + type: 'string' required: - - type - - file_id - type: object + - 'type' + - 'file_id' + type: 'object' AnthropicImageBlockParam: example: source: - data: /9j/4AAQ... - media_type: image/jpeg - type: base64 - type: image + data: '/9j/4AAQ...' + media_type: 'image/jpeg' + type: 'base64' + type: 'image' properties: cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' @@ -1414,266 +1422,276 @@ components: mapping: base64: '#/components/schemas/AnthropicBase64ImageSource' url: '#/components/schemas/AnthropicUrlImageSource' - propertyName: type + propertyName: 'type' oneOf: - $ref: '#/components/schemas/AnthropicBase64ImageSource' - $ref: '#/components/schemas/AnthropicUrlImageSource' type: enum: - - image - type: string + - 'image' + type: 'string' required: - - type - - source - type: object + - 'type' + - 'source' + type: 'object' AnthropicImageMimeType: enum: - - image/jpeg - - image/png - - image/gif - - image/webp - example: image/jpeg - type: string + - 'image/jpeg' + - 'image/png' + - 'image/gif' + - 'image/webp' + example: 'image/jpeg' + type: 'string' x-speakeasy-unknown-values: allow AnthropicInputTokensClearAtLeast: example: - type: input_tokens + type: 'input_tokens' value: 50000 - nullable: true properties: type: enum: - - input_tokens - type: string + - 'input_tokens' + type: 'string' value: - type: integer + type: 'integer' required: - - type - - value - type: object + - 'type' + - 'value' + type: + - 'object' + - 'null' AnthropicInputTokensTrigger: example: - type: input_tokens + type: 'input_tokens' value: 100000 properties: type: enum: - - input_tokens - type: string + - 'input_tokens' + type: 'string' value: - type: integer + type: 'integer' required: - - type - - value - type: object + - 'type' + - 'value' + type: 'object' AnthropicIterationCacheCreation: default: null example: ephemeral_1h_input_tokens: 0 ephemeral_5m_input_tokens: 0 - nullable: true properties: ephemeral_1h_input_tokens: - type: integer + type: 'integer' ephemeral_5m_input_tokens: - type: integer - type: object + type: 'integer' + type: + - 'object' + - 'null' AnthropicMessageUsageIteration: allOf: - $ref: '#/components/schemas/AnthropicBaseUsageIteration' - properties: model: - type: string + type: 'string' type: enum: - - message - type: string + - 'message' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' example: cache_creation: null cache_creation_input_tokens: 0 cache_read_input_tokens: 0 input_tokens: 100 output_tokens: 50 - type: message + type: 'message' AnthropicOutputTokensDetails: example: thinking_tokens: 0 - nullable: true properties: thinking_tokens: - type: integer + type: 'integer' required: - - thinking_tokens - type: object + - 'thinking_tokens' + type: + - 'object' + - 'null' AnthropicPlainTextSource: example: - data: Hello, world! - media_type: text/plain - type: text + data: 'Hello, world!' + media_type: 'text/plain' + type: 'text' properties: data: - type: string + type: 'string' media_type: enum: - - text/plain - type: string + - 'text/plain' + type: 'string' type: enum: - - text - type: string + - 'text' + type: 'string' required: - - type - - media_type - - data - type: object + - 'type' + - 'media_type' + - 'data' + type: 'object' AnthropicRedactedThinkingBlock: example: - data: cmVkYWN0ZWQ= - type: redacted_thinking + data: 'cmVkYWN0ZWQ=' + type: 'redacted_thinking' properties: data: - type: string + type: 'string' type: enum: - - redacted_thinking - type: string + - 'redacted_thinking' + type: 'string' required: - - type - - data - type: object + - 'type' + - 'data' + type: 'object' AnthropicRefusalStopDetails: - description: Structured information about a refusal + description: 'Structured information about a refusal' example: - category: cyber - explanation: The request was refused due to policy. - type: refusal - nullable: true + category: 'cyber' + explanation: 'The request was refused due to policy.' + type: 'refusal' properties: category: enum: - - cyber - - bio + - 'cyber' + - 'bio' - null - nullable: true - type: string + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow explanation: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - refusal - type: string + - 'refusal' + type: 'string' required: - - type - - category - - explanation - type: object + - 'type' + - 'category' + - 'explanation' + type: + - 'object' + - 'null' AnthropicSearchResultBlockParam: example: content: - - text: Result content - type: text - source: example_source - title: Example Result - type: search_result + - text: 'Result content' + type: 'text' + source: 'example_source' + title: 'Example Result' + type: 'search_result' properties: cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' citations: properties: enabled: - type: boolean - type: object + type: 'boolean' + type: 'object' content: items: $ref: '#/components/schemas/AnthropicTextBlockParam' - type: array + type: 'array' source: - type: string + type: 'string' title: - type: string + type: 'string' type: enum: - - search_result - type: string + - 'search_result' + type: 'string' required: - - type - - source - - title - - content - type: object + - 'type' + - 'source' + - 'title' + - 'content' + type: 'object' AnthropicServerToolErrorCode: enum: - - invalid_tool_input - - unavailable - - too_many_requests - - execution_time_exceeded - example: unavailable - type: string + - 'invalid_tool_input' + - 'unavailable' + - 'too_many_requests' + - 'execution_time_exceeded' + example: 'unavailable' + type: 'string' x-speakeasy-unknown-values: allow AnthropicServerToolUsage: example: web_fetch_requests: 0 web_search_requests: 1 - nullable: true properties: web_fetch_requests: - type: integer + type: 'integer' web_search_requests: - type: integer + type: 'integer' required: - - web_search_requests - - web_fetch_requests - type: object + - 'web_search_requests' + - 'web_fetch_requests' + type: + - 'object' + - 'null' AnthropicServiceTier: enum: - - standard - - priority - - batch + - 'standard' + - 'priority' + - 'batch' - null - example: standard - nullable: true - type: string + example: 'standard' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow AnthropicSpeed: enum: - - fast - - standard + - 'fast' + - 'standard' - null - example: standard - nullable: true - type: string + example: 'standard' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow AnthropicTextBlock: example: citations: null - text: Hello, world! - type: text + text: 'Hello, world!' + type: 'text' properties: citations: items: $ref: '#/components/schemas/AnthropicTextCitation' - nullable: true - type: array + type: + - 'array' + - 'null' text: - type: string + type: 'string' type: enum: - - text - type: string + - 'text' + type: 'string' required: - - type - - text - - citations - type: object + - 'type' + - 'text' + - 'citations' + type: 'object' AnthropicTextBlockParam: example: - text: Hello, world! - type: text + text: 'Hello, world!' + type: 'text' properties: cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' @@ -1686,25 +1704,26 @@ components: page_location: '#/components/schemas/AnthropicCitationPageLocationParam' search_result_location: '#/components/schemas/AnthropicCitationSearchResultLocationParam' web_search_result_location: '#/components/schemas/AnthropicCitationWebSearchResultLocationParam' - propertyName: type + propertyName: 'type' oneOf: - $ref: '#/components/schemas/AnthropicCitationCharLocationParam' - $ref: '#/components/schemas/AnthropicCitationPageLocationParam' - $ref: '#/components/schemas/AnthropicCitationContentBlockLocationParam' - $ref: '#/components/schemas/AnthropicCitationWebSearchResultLocationParam' - $ref: '#/components/schemas/AnthropicCitationSearchResultLocationParam' - nullable: true - type: array + type: + - 'array' + - 'null' text: - type: string + type: 'string' type: enum: - - text - type: string + - 'text' + type: 'string' required: - - type - - text - type: object + - 'type' + - 'text' + type: 'object' AnthropicTextCitation: discriminator: mapping: @@ -1713,15 +1732,15 @@ components: page_location: '#/components/schemas/AnthropicCitationPageLocation' search_result_location: '#/components/schemas/AnthropicCitationSearchResultLocation' web_search_result_location: '#/components/schemas/AnthropicCitationWebSearchResultLocation' - propertyName: type + propertyName: 'type' example: - cited_text: Example text + cited_text: 'Example text' document_index: 0 document_title: null end_char_index: 10 file_id: null start_char_index: 0 - type: char_location + type: 'char_location' oneOf: - $ref: '#/components/schemas/AnthropicCitationCharLocation' - $ref: '#/components/schemas/AnthropicCitationPageLocation' @@ -1735,14 +1754,14 @@ components: text_editor_code_execution_str_replace_result: '#/components/schemas/AnthropicTextEditorCodeExecutionStrReplaceResult' text_editor_code_execution_tool_result_error: '#/components/schemas/AnthropicTextEditorCodeExecutionToolResultError' text_editor_code_execution_view_result: '#/components/schemas/AnthropicTextEditorCodeExecutionViewResult' - propertyName: type + propertyName: 'type' example: - content: file content - file_type: text + content: 'file content' + file_type: 'text' num_lines: 10 start_line: 1 total_lines: 10 - type: text_editor_code_execution_view_result + type: 'text_editor_code_execution_view_result' oneOf: - $ref: '#/components/schemas/AnthropicTextEditorCodeExecutionToolResultError' - $ref: '#/components/schemas/AnthropicTextEditorCodeExecutionViewResult' @@ -1751,18 +1770,18 @@ components: AnthropicTextEditorCodeExecutionCreateResult: example: is_file_update: false - type: text_editor_code_execution_create_result + type: 'text_editor_code_execution_create_result' properties: is_file_update: - type: boolean + type: 'boolean' type: enum: - - text_editor_code_execution_create_result - type: string + - 'text_editor_code_execution_create_result' + type: 'string' required: - - is_file_update - - type - type: object + - 'is_file_update' + - 'type' + type: 'object' AnthropicTextEditorCodeExecutionStrReplaceResult: example: lines: null @@ -1770,366 +1789,376 @@ components: new_start: null old_lines: null old_start: null - type: text_editor_code_execution_str_replace_result + type: 'text_editor_code_execution_str_replace_result' properties: lines: items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' new_lines: - nullable: true - type: integer + type: + - 'integer' + - 'null' new_start: - nullable: true - type: integer + type: + - 'integer' + - 'null' old_lines: - nullable: true - type: integer + type: + - 'integer' + - 'null' old_start: - nullable: true - type: integer + type: + - 'integer' + - 'null' type: enum: - - text_editor_code_execution_str_replace_result - type: string + - 'text_editor_code_execution_str_replace_result' + type: 'string' required: - - lines - - new_lines - - new_start - - old_lines - - old_start - - type - type: object + - 'lines' + - 'new_lines' + - 'new_start' + - 'old_lines' + - 'old_start' + - 'type' + type: 'object' AnthropicTextEditorCodeExecutionToolResult: example: content: - content: file content - file_type: text + content: 'file content' + file_type: 'text' num_lines: 10 start_line: 1 total_lines: 10 - type: text_editor_code_execution_view_result - tool_use_id: srvtoolu_01abc - type: text_editor_code_execution_tool_result + type: 'text_editor_code_execution_view_result' + tool_use_id: 'srvtoolu_01abc' + type: 'text_editor_code_execution_tool_result' properties: content: $ref: '#/components/schemas/AnthropicTextEditorCodeExecutionContent' tool_use_id: - type: string + type: 'string' type: enum: - - text_editor_code_execution_tool_result - type: string + - 'text_editor_code_execution_tool_result' + type: 'string' required: - - type - - content - - tool_use_id - type: object + - 'type' + - 'content' + - 'tool_use_id' + type: 'object' AnthropicTextEditorCodeExecutionToolResultError: example: - error_code: unavailable + error_code: 'unavailable' error_message: null - type: text_editor_code_execution_tool_result_error + type: 'text_editor_code_execution_tool_result_error' properties: error_code: enum: - - invalid_tool_input - - unavailable - - too_many_requests - - execution_time_exceeded - - file_not_found - type: string + - 'invalid_tool_input' + - 'unavailable' + - 'too_many_requests' + - 'execution_time_exceeded' + - 'file_not_found' + type: 'string' x-speakeasy-unknown-values: allow error_message: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - text_editor_code_execution_tool_result_error - type: string + - 'text_editor_code_execution_tool_result_error' + type: 'string' required: - - error_code - - error_message - - type - type: object + - 'error_code' + - 'error_message' + - 'type' + type: 'object' AnthropicTextEditorCodeExecutionViewResult: example: - content: file content - file_type: text + content: 'file content' + file_type: 'text' num_lines: 10 start_line: 1 total_lines: 10 - type: text_editor_code_execution_view_result + type: 'text_editor_code_execution_view_result' properties: content: - type: string + type: 'string' file_type: enum: - - text - - image - - pdf - type: string + - 'text' + - 'image' + - 'pdf' + type: 'string' x-speakeasy-unknown-values: allow num_lines: - nullable: true - type: integer + type: + - 'integer' + - 'null' start_line: - nullable: true - type: integer + type: + - 'integer' + - 'null' total_lines: - nullable: true - type: integer + type: + - 'integer' + - 'null' type: enum: - - text_editor_code_execution_view_result - type: string + - 'text_editor_code_execution_view_result' + type: 'string' required: - - content - - file_type - - num_lines - - start_line - - total_lines - - type - type: object + - 'content' + - 'file_type' + - 'num_lines' + - 'start_line' + - 'total_lines' + - 'type' + type: 'object' AnthropicThinkingBlock: example: - signature: sig_abc123 - thinking: Let me think about this... - type: thinking + signature: 'sig_abc123' + thinking: 'Let me think about this...' + type: 'thinking' properties: signature: - type: string + type: 'string' thinking: - type: string + type: 'string' type: enum: - - thinking - type: string + - 'thinking' + type: 'string' required: - - type - - thinking - - signature - type: object + - 'type' + - 'thinking' + - 'signature' + type: 'object' AnthropicThinkingDisplay: enum: - - summarized - - omitted + - 'summarized' + - 'omitted' - null - example: summarized - nullable: true - type: string + example: 'summarized' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow AnthropicThinkingTurns: example: - type: thinking_turns + type: 'thinking_turns' value: 3 properties: type: enum: - - thinking_turns - type: string + - 'thinking_turns' + type: 'string' value: - type: integer + type: 'integer' required: - - type - - value - type: object + - 'type' + - 'value' + type: 'object' AnthropicToolReference: example: - tool_name: my_tool - type: tool_reference + tool_name: 'my_tool' + type: 'tool_reference' properties: tool_name: - type: string + type: 'string' type: enum: - - tool_reference - type: string + - 'tool_reference' + type: 'string' required: - - tool_name - - type - type: object + - 'tool_name' + - 'type' + type: 'object' AnthropicToolSearchContent: discriminator: mapping: tool_search_tool_result_error: '#/components/schemas/AnthropicToolSearchResultError' tool_search_tool_search_result: '#/components/schemas/AnthropicToolSearchResult' - propertyName: type + propertyName: 'type' example: tool_references: - - tool_name: my_tool - type: tool_reference - type: tool_search_tool_search_result + - tool_name: 'my_tool' + type: 'tool_reference' + type: 'tool_search_tool_search_result' oneOf: - $ref: '#/components/schemas/AnthropicToolSearchResultError' - $ref: '#/components/schemas/AnthropicToolSearchResult' AnthropicToolSearchResult: example: tool_references: - - tool_name: my_tool - type: tool_reference - type: tool_search_tool_search_result + - tool_name: 'my_tool' + type: 'tool_reference' + type: 'tool_search_tool_search_result' properties: tool_references: items: $ref: '#/components/schemas/AnthropicToolReference' - type: array + type: 'array' type: enum: - - tool_search_tool_search_result - type: string + - 'tool_search_tool_search_result' + type: 'string' required: - - tool_references - - type - type: object + - 'tool_references' + - 'type' + type: 'object' AnthropicToolSearchResultError: example: - error_code: unavailable + error_code: 'unavailable' error_message: null - type: tool_search_tool_result_error + type: 'tool_search_tool_result_error' properties: error_code: $ref: '#/components/schemas/AnthropicServerToolErrorCode' error_message: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - tool_search_tool_result_error - type: string + - 'tool_search_tool_result_error' + type: 'string' required: - - error_code - - error_message - - type - type: object + - 'error_code' + - 'error_message' + - 'type' + type: 'object' AnthropicToolSearchToolResult: example: content: tool_references: - - tool_name: my_tool - type: tool_reference - type: tool_search_tool_search_result - tool_use_id: srvtoolu_01abc - type: tool_search_tool_result + - tool_name: 'my_tool' + type: 'tool_reference' + type: 'tool_search_tool_search_result' + tool_use_id: 'srvtoolu_01abc' + type: 'tool_search_tool_result' properties: content: $ref: '#/components/schemas/AnthropicToolSearchContent' tool_use_id: - type: string + type: 'string' type: enum: - - tool_search_tool_result - type: string + - 'tool_search_tool_result' + type: 'string' required: - - type - - content - - tool_use_id - type: object + - 'type' + - 'content' + - 'tool_use_id' + type: 'object' AnthropicToolUseBlock: example: caller: - type: direct - id: toolu_01abc + type: 'direct' + id: 'toolu_01abc' input: - location: San Francisco - name: get_weather - type: tool_use + location: 'San Francisco' + name: 'get_weather' + type: 'tool_use' properties: caller: $ref: '#/components/schemas/AnthropicCaller' id: - type: string - input: - nullable: true + type: 'string' + input: {} name: - type: string + type: 'string' type: enum: - - tool_use - type: string + - 'tool_use' + type: 'string' required: - - type - - id - - caller - - name - type: object + - 'type' + - 'id' + - 'caller' + - 'name' + type: 'object' AnthropicToolUsesKeep: example: - type: tool_uses + type: 'tool_uses' value: 5 properties: type: enum: - - tool_uses - type: string + - 'tool_uses' + type: 'string' value: - type: integer + type: 'integer' required: - - type - - value - type: object + - 'type' + - 'value' + type: 'object' AnthropicToolUsesTrigger: example: - type: tool_uses + type: 'tool_uses' value: 10 properties: type: enum: - - tool_uses - type: string + - 'tool_uses' + type: 'string' value: - type: integer + type: 'integer' required: - - type - - value - type: object + - 'type' + - 'value' + type: 'object' AnthropicUnknownUsageIteration: allOf: - $ref: '#/components/schemas/AnthropicBaseUsageIteration' - properties: type: - type: string + type: 'string' required: - - type - type: object + - 'type' + type: 'object' example: cache_creation: null cache_creation_input_tokens: 0 cache_read_input_tokens: 0 input_tokens: 100 output_tokens: 50 - type: unknown + type: 'unknown' AnthropicUrlImageSource: example: - type: url - url: https://example.com/image.jpg + type: 'url' + url: 'https://example.com/image.jpg' properties: type: enum: - - url - type: string + - 'url' + type: 'string' url: - type: string + type: 'string' required: - - type - - url - type: object + - 'type' + - 'url' + type: 'object' AnthropicUrlPdfSource: example: - type: url - url: https://example.com/document.pdf + type: 'url' + url: 'https://example.com/document.pdf' properties: type: enum: - - url - type: string + - 'url' + type: 'string' url: - type: string + type: 'string' required: - - type - - url - type: object + - 'type' + - 'url' + type: 'object' AnthropicUsage: example: cache_creation: null @@ -2140,23 +2169,26 @@ components: output_tokens: 50 output_tokens_details: null server_tool_use: null - service_tier: standard + service_tier: 'standard' properties: cache_creation: $ref: '#/components/schemas/AnthropicCacheCreation' cache_creation_input_tokens: - nullable: true - type: integer + type: + - 'integer' + - 'null' cache_read_input_tokens: - nullable: true - type: integer + type: + - 'integer' + - 'null' inference_geo: - nullable: true - type: string + type: + - 'string' + - 'null' input_tokens: - type: integer + type: 'integer' output_tokens: - type: integer + type: 'integer' output_tokens_details: $ref: '#/components/schemas/AnthropicOutputTokensDetails' server_tool_use: @@ -2164,16 +2196,16 @@ components: service_tier: $ref: '#/components/schemas/AnthropicServiceTier' required: - - input_tokens - - output_tokens - - output_tokens_details - - cache_creation_input_tokens - - cache_read_input_tokens - - cache_creation - - inference_geo - - server_tool_use - - service_tier - type: object + - 'input_tokens' + - 'output_tokens' + - 'output_tokens_details' + - 'cache_creation_input_tokens' + - 'cache_read_input_tokens' + - 'cache_creation' + - 'inference_geo' + - 'server_tool_use' + - 'service_tier' + type: 'object' AnthropicUsageIteration: anyOf: - $ref: '#/components/schemas/AnthropicCompactionUsageIteration' @@ -2186,180 +2218,183 @@ components: cache_read_input_tokens: 0 input_tokens: 100 output_tokens: 50 - type: message + type: 'message' AnthropicWebFetchBlock: example: content: citations: null source: data: '' - media_type: text/plain - type: text + media_type: 'text/plain' + type: 'text' title: null - type: document + type: 'document' retrieved_at: null - type: web_fetch_result - url: https://example.com + type: 'web_fetch_result' + url: 'https://example.com' properties: content: $ref: '#/components/schemas/AnthropicDocumentBlock' retrieved_at: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - web_fetch_result - type: string + - 'web_fetch_result' + type: 'string' url: - type: string + type: 'string' required: - - content - - retrieved_at - - type - - url - type: object + - 'content' + - 'retrieved_at' + - 'type' + - 'url' + type: 'object' AnthropicWebFetchContent: discriminator: mapping: web_fetch_result: '#/components/schemas/AnthropicWebFetchBlock' web_fetch_tool_result_error: '#/components/schemas/AnthropicWebFetchToolResultError' - propertyName: type + propertyName: 'type' example: content: citations: null source: data: '' - media_type: text/plain - type: text + media_type: 'text/plain' + type: 'text' title: null - type: document + type: 'document' retrieved_at: null - type: web_fetch_result - url: https://example.com + type: 'web_fetch_result' + url: 'https://example.com' oneOf: - $ref: '#/components/schemas/AnthropicWebFetchToolResultError' - $ref: '#/components/schemas/AnthropicWebFetchBlock' AnthropicWebFetchToolResult: example: caller: - type: direct + type: 'direct' content: content: citations: null source: data: '' - media_type: text/plain - type: text + media_type: 'text/plain' + type: 'text' title: null - type: document + type: 'document' retrieved_at: null - type: web_fetch_result - url: https://example.com - tool_use_id: srvtoolu_01abc - type: web_fetch_tool_result + type: 'web_fetch_result' + url: 'https://example.com' + tool_use_id: 'srvtoolu_01abc' + type: 'web_fetch_tool_result' properties: caller: $ref: '#/components/schemas/AnthropicCaller' content: $ref: '#/components/schemas/AnthropicWebFetchContent' tool_use_id: - type: string + type: 'string' type: enum: - - web_fetch_tool_result - type: string + - 'web_fetch_tool_result' + type: 'string' required: - - type - - caller - - content - - tool_use_id - type: object + - 'type' + - 'caller' + - 'content' + - 'tool_use_id' + type: 'object' AnthropicWebFetchToolResultError: example: - error_code: unavailable - type: web_fetch_tool_result_error + error_code: 'unavailable' + type: 'web_fetch_tool_result_error' properties: error_code: enum: - - invalid_tool_input - - url_too_long - - url_not_allowed - - url_not_accessible - - unsupported_content_type - - too_many_requests - - max_uses_exceeded - - unavailable - type: string + - 'invalid_tool_input' + - 'url_too_long' + - 'url_not_allowed' + - 'url_not_accessible' + - 'unsupported_content_type' + - 'too_many_requests' + - 'max_uses_exceeded' + - 'unavailable' + type: 'string' x-speakeasy-unknown-values: allow type: enum: - - web_fetch_tool_result_error - type: string + - 'web_fetch_tool_result_error' + type: 'string' required: - - type - - error_code - type: object + - 'type' + - 'error_code' + type: 'object' AnthropicWebSearchResult: example: - encrypted_content: enc_content_0 + encrypted_content: 'enc_content_0' page_age: null - title: Example Page - type: web_search_result - url: https://example.com + title: 'Example Page' + type: 'web_search_result' + url: 'https://example.com' properties: encrypted_content: - type: string + type: 'string' page_age: - nullable: true - type: string + type: + - 'string' + - 'null' title: - type: string + type: 'string' type: enum: - - web_search_result - type: string + - 'web_search_result' + type: 'string' url: - type: string - required: - - type - - encrypted_content - - page_age - - title - - url - type: object + type: 'string' + required: + - 'type' + - 'encrypted_content' + - 'page_age' + - 'title' + - 'url' + type: 'object' AnthropicWebSearchResultBlockParam: example: - encrypted_content: enc_content_0 - title: Example Page - type: web_search_result - url: https://example.com + encrypted_content: 'enc_content_0' + title: 'Example Page' + type: 'web_search_result' + url: 'https://example.com' properties: encrypted_content: - type: string + type: 'string' page_age: - nullable: true - type: string + type: + - 'string' + - 'null' title: - type: string + type: 'string' type: enum: - - web_search_result - type: string + - 'web_search_result' + type: 'string' url: - type: string + type: 'string' required: - - type - - encrypted_content - - title - - url - type: object + - 'type' + - 'encrypted_content' + - 'title' + - 'url' + type: 'object' AnthropicWebSearchToolResult: example: caller: - type: direct + type: 'direct' content: [] - tool_use_id: srvtoolu_01abc - type: web_search_tool_result + tool_use_id: 'srvtoolu_01abc' + type: 'web_search_tool_result' properties: caller: $ref: '#/components/schemas/AnthropicCaller' @@ -2367,413 +2402,398 @@ components: anyOf: - items: $ref: '#/components/schemas/AnthropicWebSearchResult' - type: array + type: 'array' - $ref: '#/components/schemas/AnthropicWebSearchToolResultError' tool_use_id: - type: string + type: 'string' type: enum: - - web_search_tool_result - type: string + - 'web_search_tool_result' + type: 'string' required: - - type - - caller - - tool_use_id - - content - type: object + - 'type' + - 'caller' + - 'tool_use_id' + - 'content' + type: 'object' AnthropicWebSearchToolResultError: example: - error_code: unavailable - type: web_search_tool_result_error + error_code: 'unavailable' + type: 'web_search_tool_result_error' properties: error_code: enum: - - invalid_tool_input - - unavailable - - max_uses_exceeded - - too_many_requests - - query_too_long - - request_too_large - type: string + - 'invalid_tool_input' + - 'unavailable' + - 'max_uses_exceeded' + - 'too_many_requests' + - 'query_too_long' + - 'request_too_large' + type: 'string' x-speakeasy-unknown-values: allow type: enum: - - web_search_tool_result_error - type: string + - 'web_search_tool_result_error' + type: 'string' required: - - type - - error_code - type: object + - 'type' + - 'error_code' + type: 'object' AnthropicWebSearchToolUserLocation: example: - city: San Francisco - country: US - region: California - timezone: America/Los_Angeles - type: approximate - nullable: true + city: 'San Francisco' + country: 'US' + region: 'California' + timezone: 'America/Los_Angeles' + type: 'approximate' properties: city: - nullable: true - type: string + type: + - 'string' + - 'null' country: - nullable: true - type: string + type: + - 'string' + - 'null' region: - nullable: true - type: string + type: + - 'string' + - 'null' timezone: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - approximate - type: string + - 'approximate' + type: 'string' required: - - type - type: object + - 'type' + type: + - 'object' + - 'null' ApiErrorType: - description: Canonical OpenRouter error type, stable across all API formats + description: 'Canonical OpenRouter error type, stable across all API formats' enum: - - context_length_exceeded - - max_tokens_exceeded - - token_limit_exceeded - - string_too_long - - authentication - - permission_denied - - payment_required - - rate_limit_exceeded - - provider_overloaded - - provider_unavailable - - invalid_request - - invalid_prompt - - not_found - - precondition_failed - - payload_too_large - - unprocessable - - content_policy_violation - - refusal - - invalid_image - - image_too_large - - image_too_small - - unsupported_image_format - - image_not_found - - image_download_failed - - server - - timeout - - unmapped - example: rate_limit_exceeded - type: string + - 'context_length_exceeded' + - 'max_tokens_exceeded' + - 'token_limit_exceeded' + - 'string_too_long' + - 'authentication' + - 'permission_denied' + - 'payment_required' + - 'rate_limit_exceeded' + - 'provider_overloaded' + - 'provider_unavailable' + - 'invalid_request' + - 'invalid_prompt' + - 'not_found' + - 'precondition_failed' + - 'payload_too_large' + - 'unprocessable' + - 'content_policy_violation' + - 'refusal' + - 'invalid_image' + - 'image_too_large' + - 'image_too_small' + - 'unsupported_image_format' + - 'image_not_found' + - 'image_download_failed' + - 'server' + - 'timeout' + - 'unmapped' + example: 'rate_limit_exceeded' + type: 'string' x-speakeasy-unknown-values: allow ApplyPatchCallItem: - description: >- - A tool call emitted by the model requesting a V4A patch operation. The client applies the patch and echoes an `apply_patch_call_output` on the next turn. + description: 'A tool call emitted by the model requesting a V4A patch operation. The client applies the patch and echoes an `apply_patch_call_output` on the next turn.' example: - call_id: call_abc123 - id: apc_abc123 + call_id: 'call_abc123' + id: 'apc_abc123' operation: - diff: |- - @@ function main() { - + console.log("hi"); - } - path: /src/main.ts - type: update_file - status: completed - type: apply_patch_call + diff: "@@ function main() {\n+ console.log(\"hi\");\n }" + path: '/src/main.ts' + type: 'update_file' + status: 'completed' + type: 'apply_patch_call' properties: call_id: - type: string + type: 'string' id: - nullable: true - type: string + type: + - 'string' + - 'null' operation: $ref: '#/components/schemas/ApplyPatchCallOperation' status: $ref: '#/components/schemas/ApplyPatchCallStatus' type: enum: - - apply_patch_call - type: string + - 'apply_patch_call' + type: 'string' required: - - type - - call_id - - status - - operation - type: object + - 'type' + - 'call_id' + - 'status' + - 'operation' + type: 'object' ApplyPatchCallOperation: - description: >- - The patch operation requested by an `apply_patch_call`. `create_file` and `update_file` carry a V4A diff; `delete_file` omits it. + description: 'The patch operation requested by an `apply_patch_call`. `create_file` and `update_file` carry a V4A diff; `delete_file` omits it.' discriminator: mapping: create_file: '#/components/schemas/ApplyPatchCreateFileOperation' delete_file: '#/components/schemas/ApplyPatchDeleteFileOperation' update_file: '#/components/schemas/ApplyPatchUpdateFileOperation' - propertyName: type - example: - diff: |- - @@ function main() { - + console.log("hi"); - } - path: /src/main.ts - type: update_file + propertyName: 'type' + example: + diff: "@@ function main() {\n+ console.log(\"hi\");\n }" + path: '/src/main.ts' + type: 'update_file' oneOf: - $ref: '#/components/schemas/ApplyPatchCreateFileOperation' - $ref: '#/components/schemas/ApplyPatchUpdateFileOperation' - $ref: '#/components/schemas/ApplyPatchDeleteFileOperation' ApplyPatchCallOperationDiffDeltaEvent: - description: Incremental chunk of `operation.diff` for an `apply_patch_call`. Matches OpenAI's streaming shape. + description: 'Incremental chunk of `operation.diff` for an `apply_patch_call`. Matches OpenAI''s streaming shape.' example: - delta: | - +console.log("hi"); - item_id: apc_abc123 + delta: "+console.log(\"hi\");\n" + item_id: 'apc_abc123' output_index: 0 sequence_number: 5 - type: response.apply_patch_call_operation_diff.delta + type: 'response.apply_patch_call_operation_diff.delta' properties: delta: - type: string + type: 'string' item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.apply_patch_call_operation_diff.delta - type: string + - 'response.apply_patch_call_operation_diff.delta' + type: 'string' required: - - type - - item_id - - output_index - - delta - - sequence_number - type: object + - 'type' + - 'item_id' + - 'output_index' + - 'delta' + - 'sequence_number' + type: 'object' ApplyPatchCallOperationDiffDoneEvent: - description: Emitted when `operation.diff` streaming completes for an `apply_patch_call`. + description: 'Emitted when `operation.diff` streaming completes for an `apply_patch_call`.' example: - diff: | - @@ - +console.log("hi"); - item_id: apc_abc123 + diff: "@@\n+console.log(\"hi\");\n" + item_id: 'apc_abc123' output_index: 0 sequence_number: 12 - type: response.apply_patch_call_operation_diff.done + type: 'response.apply_patch_call_operation_diff.done' properties: diff: - type: string + type: 'string' item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.apply_patch_call_operation_diff.done - type: string + - 'response.apply_patch_call_operation_diff.done' + type: 'string' required: - - type - - item_id - - output_index - - diff - - sequence_number - type: object + - 'type' + - 'item_id' + - 'output_index' + - 'diff' + - 'sequence_number' + type: 'object' ApplyPatchCallOutputItem: - description: >- - The client's echo of an `apply_patch_call` after applying the patch. `output` is an optional human-readable log; `status` is `completed` when the patch was applied successfully, `failed` otherwise. + description: 'The client''s echo of an `apply_patch_call` after applying the patch. `output` is an optional human-readable log; `status` is `completed` when the patch was applied successfully, `failed` otherwise.' example: - call_id: call_abc123 - output: Applied patch to /src/main.ts - status: completed - type: apply_patch_call_output + call_id: 'call_abc123' + output: 'Applied patch to /src/main.ts' + status: 'completed' + type: 'apply_patch_call_output' properties: call_id: - type: string + type: 'string' id: - nullable: true - type: string + type: + - 'string' + - 'null' output: - nullable: true - type: string + type: + - 'string' + - 'null' status: enum: - - completed - - failed - type: string + - 'completed' + - 'failed' + type: 'string' x-speakeasy-unknown-values: allow type: enum: - - apply_patch_call_output - type: string + - 'apply_patch_call_output' + type: 'string' required: - - type - - call_id - - status - type: object + - 'type' + - 'call_id' + - 'status' + type: 'object' ApplyPatchCallStatus: - description: Lifecycle state of an `apply_patch_call` output item. + description: 'Lifecycle state of an `apply_patch_call` output item.' enum: - - in_progress - - completed - example: completed - type: string + - 'in_progress' + - 'completed' + example: 'completed' + type: 'string' x-speakeasy-unknown-values: allow ApplyPatchCreateFileOperation: - description: >- - The `create_file` variant of an `apply_patch_call.operation`. Carries a V4A diff describing the new file contents. + description: 'The `create_file` variant of an `apply_patch_call.operation`. Carries a V4A diff describing the new file contents.' example: - diff: | - @@ - +console.log("hi"); - path: /src/main.ts - type: create_file + diff: "@@\n+console.log(\"hi\");\n" + path: '/src/main.ts' + type: 'create_file' properties: diff: - type: string + type: 'string' path: - type: string + type: 'string' type: enum: - - create_file - type: string + - 'create_file' + type: 'string' required: - - type - - path - - diff - type: object + - 'type' + - 'path' + - 'diff' + type: 'object' ApplyPatchDeleteFileOperation: - description: >- - The `delete_file` variant of an `apply_patch_call.operation`. Identifies the file to remove; no diff is required. + description: 'The `delete_file` variant of an `apply_patch_call.operation`. Identifies the file to remove; no diff is required.' example: - path: /src/main.ts - type: delete_file + path: '/src/main.ts' + type: 'delete_file' properties: path: - type: string + type: 'string' type: enum: - - delete_file - type: string + - 'delete_file' + type: 'string' required: - - type - - path - type: object + - 'type' + - 'path' + type: 'object' ApplyPatchEngineEnum: - description: >- - Which apply_patch engine to use. "auto" (default) uses native passthrough when the endpoint advertises native apply_patch support, otherwise falls back to OpenRouter's HITL validator. "native" forces native passthrough — when the endpoint does not support native, the request falls back to HITL. "openrouter" always runs the HITL validator. Native passthrough streams the diff incrementally via `apply_patch_call_operation_diff.delta` events; HITL buffers the diff for atomic delivery as a single delta. + description: 'Which apply_patch engine to use. "auto" (default) uses native passthrough when the endpoint advertises native apply_patch support, otherwise falls back to OpenRouter''s HITL validator. "native" forces native passthrough — when the endpoint does not support native, the request falls back to HITL. "openrouter" always runs the HITL validator. Native passthrough streams the diff incrementally via `apply_patch_call_operation_diff.delta` events; HITL buffers the diff for atomic delivery as a single delta.' enum: - - auto - - native - - openrouter - example: auto - type: string + - 'auto' + - 'native' + - 'openrouter' + example: 'auto' + type: 'string' x-speakeasy-unknown-values: allow ApplyPatchServerTool: - description: Apply patch tool configuration + description: 'Apply patch tool configuration' example: - type: apply_patch + type: 'apply_patch' properties: type: enum: - - apply_patch - type: string + - 'apply_patch' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' ApplyPatchServerTool_OpenRouter: - description: >- - OpenRouter built-in server tool: validates V4A diff patches for file operations (create, update, delete). Restricted to the Responses API. + description: 'OpenRouter built-in server tool: validates V4A diff patches for file operations (create, update, delete). Restricted to the Responses API.' example: - type: openrouter:apply_patch + type: 'openrouter:apply_patch' properties: parameters: $ref: '#/components/schemas/ApplyPatchServerToolConfig' type: enum: - - openrouter:apply_patch - type: string + - 'openrouter:apply_patch' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' ApplyPatchServerToolConfig: - description: Configuration for the openrouter:apply_patch server tool + description: 'Configuration for the openrouter:apply_patch server tool' example: - engine: auto + engine: 'auto' properties: engine: $ref: '#/components/schemas/ApplyPatchEngineEnum' - type: object + type: 'object' ApplyPatchUpdateFileOperation: - description: >- - The `update_file` variant of an `apply_patch_call.operation`. Carries a V4A diff describing edits to an existing file. + description: 'The `update_file` variant of an `apply_patch_call.operation`. Carries a V4A diff describing edits to an existing file.' example: - diff: |- - @@ function main() { - + console.log("hi"); - } - path: /src/main.ts - type: update_file + diff: "@@ function main() {\n+ console.log(\"hi\");\n }" + path: '/src/main.ts' + type: 'update_file' properties: diff: - type: string + type: 'string' path: - type: string + type: 'string' type: enum: - - update_file - type: string + - 'update_file' + type: 'string' required: - - type - - path - - diff - type: object + - 'type' + - 'path' + - 'diff' + type: 'object' AppRankingsItem: example: app_id: 12345 - app_name: Cline + app_name: 'Cline' rank: 1 total_requests: 4321 total_tokens: '12345678' properties: app_id: - description: Stable numeric identifier of the app on OpenRouter. + description: 'Stable numeric identifier of the app on OpenRouter.' example: 12345 - type: integer + type: 'integer' app_name: - description: Public display name of the app. - example: Cline - type: string + 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`. + description: '1-based position of the app within this response, per the requested `sort`.' example: 1 - type: integer + type: 'integer' total_requests: - description: Number of requests attributed to the app inside the date window. + description: 'Number of requests attributed to the app inside the date window.' example: 4321 - type: integer + 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. + 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 + type: 'string' + required: + - 'rank' + - 'app_id' + - 'app_name' + - 'total_tokens' + - 'total_requests' + type: 'object' AppRankingsResponse: example: data: - app_id: 12345 - app_name: Cline + app_name: 'Cline' rank: 1 total_requests: 4321 total_tokens: '12345678' - app_id: 67890 - app_name: Roo Code + app_name: 'Roo Code' rank: 2 total_requests: 2109 total_tokens: '9876543' @@ -2781,402 +2801,399 @@ components: as_of: '2026-05-12T02:00:00Z' end_date: '2026-05-11' start_date: '2026-04-12' - version: v1 + 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. + 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 + type: 'array' meta: $ref: '#/components/schemas/RankingsDailyMeta' required: - - data - - meta - type: object + - 'data' + - 'meta' + type: 'object' AutoRouterPlugin: example: allowed_models: - - anthropic/* - - openai/gpt-4o + - 'anthropic/*' + - 'openai/gpt-4o' cost_quality_tradeoff: 7 enabled: true - id: auto-router + id: 'auto-router' properties: allowed_models: - description: >- - List of model patterns to filter which models the auto-router can route between. Supports wildcards (e.g., "anthropic/*" matches all Anthropic models). When not specified, uses the default supported models list. + description: 'List of model patterns to filter which models the auto-router can route between. Supports wildcards (e.g., "anthropic/*" matches all Anthropic models). When not specified, uses the default supported models list.' example: - - anthropic/* - - openai/gpt-4o - - google/* + - 'anthropic/*' + - 'openai/gpt-4o' + - 'google/*' items: - type: string - type: array + type: 'string' + type: 'array' cost_quality_tradeoff: - description: >- - Controls cost vs. quality routing tradeoff (0–10). 0 = pure quality (best model regardless of cost), 10 = maximize for cost (cheapest model wins). Intermediate values blend quality and cost signals continuously. Defaults to 7. + description: 'Controls cost vs. quality routing tradeoff (0–10). 0 = pure quality (best model regardless of cost), 10 = maximize for cost (cheapest model wins). Intermediate values blend quality and cost signals continuously. Defaults to 7.' example: 7 maximum: 10 minimum: 0 - type: integer + type: 'integer' enabled: - description: Set to false to disable the auto-router plugin for this request. Defaults to true. - type: boolean + description: 'Set to false to disable the auto-router plugin for this request. Defaults to true.' + type: 'boolean' id: enum: - - auto-router - type: string + - 'auto-router' + type: 'string' required: - - id - type: object + - 'id' + type: 'object' BadGatewayResponse: - description: Bad Gateway - Provider/upstream API failure + description: 'Bad Gateway - Provider/upstream API failure' example: error: code: 502 - message: Provider returned error + message: 'Provider returned error' properties: error: $ref: '#/components/schemas/BadGatewayResponseErrorData' openrouter_metadata: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' user_id: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - error - type: object + - 'error' + type: 'object' BadGatewayResponseErrorData: - description: Error data for BadGatewayResponse + description: 'Error data for BadGatewayResponse' example: code: 502 - message: Provider returned error + message: 'Provider returned error' properties: code: - type: integer + type: 'integer' message: - type: string + type: 'string' metadata: - additionalProperties: - nullable: true - nullable: true - type: object - required: - - code - - message - type: object + additionalProperties: {} + type: + - 'object' + - 'null' + required: + - 'code' + - 'message' + type: 'object' BadRequestResponse: - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' properties: error: $ref: '#/components/schemas/BadRequestResponseErrorData' openrouter_metadata: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' user_id: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - error - type: object + - 'error' + type: 'object' BadRequestResponseErrorData: - description: Error data for BadRequestResponse + description: 'Error data for BadRequestResponse' example: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' properties: code: - type: integer + type: 'integer' message: - type: string + type: 'string' metadata: - additionalProperties: - nullable: true - nullable: true - type: object - required: - - code - - message - type: object + additionalProperties: {} + type: + - 'object' + - 'null' + required: + - 'code' + - 'message' + type: 'object' BaseAnnotationAddedEvent: - description: Event emitted when a text annotation is added to output + description: 'Event emitted when a text annotation is added to output' example: annotation: end_index: 7 start_index: 0 - title: Example - type: url_citation - url: https://example.com + title: 'Example' + type: 'url_citation' + url: 'https://example.com' annotation_index: 0 content_index: 0 - item_id: item-1 + item_id: 'item-1' output_index: 0 sequence_number: 5 - type: response.output_text.annotation.added + type: 'response.output_text.annotation.added' properties: annotation: $ref: '#/components/schemas/OpenAIResponsesAnnotation' annotation_index: - type: integer + type: 'integer' content_index: - type: integer + type: 'integer' item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.output_text.annotation.added - type: string + - 'response.output_text.annotation.added' + type: 'string' required: - - type - - output_index - - item_id - - content_index - - sequence_number - - annotation_index - - annotation - type: object + - 'type' + - 'output_index' + - 'item_id' + - 'content_index' + - 'sequence_number' + - 'annotation_index' + - 'annotation' + type: 'object' BaseContentPartAddedEvent: - description: Event emitted when a new content part is added to an output item + description: 'Event emitted when a new content part is added to an output item' example: content_index: 0 - item_id: item-1 + item_id: 'item-1' output_index: 0 part: annotations: [] text: '' - type: output_text + type: 'output_text' sequence_number: 3 - type: response.content_part.added + type: 'response.content_part.added' properties: content_index: - type: integer + type: 'integer' item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' part: anyOf: - $ref: '#/components/schemas/ResponseOutputText' - $ref: '#/components/schemas/OpenAIResponsesRefusalContent' sequence_number: - type: integer + type: 'integer' type: enum: - - response.content_part.added - type: string + - 'response.content_part.added' + type: 'string' required: - - type - - output_index - - item_id - - content_index - - part - - sequence_number - type: object + - 'type' + - 'output_index' + - 'item_id' + - 'content_index' + - 'part' + - 'sequence_number' + type: 'object' BaseContentPartDoneEvent: - description: Event emitted when a content part is complete + description: 'Event emitted when a content part is complete' example: content_index: 0 - item_id: item-1 + item_id: 'item-1' output_index: 0 part: annotations: [] - text: Hello! How can I help you? - type: output_text + text: 'Hello! How can I help you?' + type: 'output_text' sequence_number: 7 - type: response.content_part.done + type: 'response.content_part.done' properties: content_index: - type: integer + type: 'integer' item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' part: anyOf: - $ref: '#/components/schemas/ResponseOutputText' - $ref: '#/components/schemas/OpenAIResponsesRefusalContent' sequence_number: - type: integer + type: 'integer' type: enum: - - response.content_part.done - type: string + - 'response.content_part.done' + type: 'string' required: - - type - - output_index - - item_id - - content_index - - part - - sequence_number - type: object + - 'type' + - 'output_index' + - 'item_id' + - 'content_index' + - 'part' + - 'sequence_number' + type: 'object' BaseCustomToolCallInputDeltaEvent: - description: >- - Event emitted when a custom tool call's freeform input is being streamed. Mirrors `response.function_call_arguments.delta` but for `custom` tools whose input is opaque text rather than JSON arguments. + description: 'Event emitted when a custom tool call''s freeform input is being streamed. Mirrors `response.function_call_arguments.delta` but for `custom` tools whose input is opaque text rather than JSON arguments.' example: delta: '*** Begin Patch' - item_id: item-1 + item_id: 'item-1' output_index: 0 sequence_number: 4 - type: response.custom_tool_call_input.delta + type: 'response.custom_tool_call_input.delta' properties: delta: - type: string + type: 'string' item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.custom_tool_call_input.delta - type: string + - 'response.custom_tool_call_input.delta' + type: 'string' required: - - type - - item_id - - output_index - - delta - - sequence_number - type: object + - 'type' + - 'item_id' + - 'output_index' + - 'delta' + - 'sequence_number' + type: 'object' BaseCustomToolCallInputDoneEvent: - description: >- - Event emitted when a custom tool call's freeform input streaming is complete. Mirrors `response.function_call_arguments.done` but for `custom` tools. + description: 'Event emitted when a custom tool call''s freeform input streaming is complete. Mirrors `response.function_call_arguments.done` but for `custom` tools.' example: - input: |- - *** Begin Patch - *** End Patch - item_id: item-1 + input: "*** Begin Patch\n*** End Patch" + item_id: 'item-1' output_index: 0 sequence_number: 6 - type: response.custom_tool_call_input.done + type: 'response.custom_tool_call_input.done' properties: input: - type: string + type: 'string' item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.custom_tool_call_input.done - type: string + - 'response.custom_tool_call_input.done' + type: 'string' required: - - type - - item_id - - output_index - - input - - sequence_number - type: object + - 'type' + - 'item_id' + - 'output_index' + - 'input' + - 'sequence_number' + type: 'object' BaseErrorEvent: - description: Event emitted when an error occurs during streaming + description: 'Event emitted when an error occurs during streaming' example: - code: rate_limit_exceeded - message: Rate limit exceeded. Please try again later. + code: 'rate_limit_exceeded' + message: 'Rate limit exceeded. Please try again later.' param: null sequence_number: 2 - type: error + type: 'error' properties: code: - nullable: true - type: string + type: + - 'string' + - 'null' message: - type: string + type: 'string' param: - nullable: true - type: string + type: + - 'string' + - 'null' sequence_number: - type: integer + type: 'integer' type: enum: - - error - type: string + - 'error' + type: 'string' required: - - type - - code - - message - - param - - sequence_number - type: object + - 'type' + - 'code' + - 'message' + - 'param' + - 'sequence_number' + type: 'object' BaseFunctionCallArgsDeltaEvent: - description: Event emitted when function call arguments are being streamed + description: 'Event emitted when function call arguments are being streamed' example: delta: '{"city": "..."}' - item_id: item-1 + item_id: 'item-1' output_index: 0 sequence_number: 4 - type: response.function_call_arguments.delta + type: 'response.function_call_arguments.delta' properties: delta: - type: string + type: 'string' item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.function_call_arguments.delta - type: string + - 'response.function_call_arguments.delta' + type: 'string' required: - - type - - item_id - - output_index - - delta - - sequence_number - type: object + - 'type' + - 'item_id' + - 'output_index' + - 'delta' + - 'sequence_number' + type: 'object' BaseFunctionCallArgsDoneEvent: - description: Event emitted when function call arguments streaming is complete + description: 'Event emitted when function call arguments streaming is complete' example: arguments: '{"city": "San Francisco", "units": "celsius"}' - item_id: item-1 - name: get_weather + item_id: 'item-1' + name: 'get_weather' output_index: 0 sequence_number: 6 - type: response.function_call_arguments.done + type: 'response.function_call_arguments.done' properties: arguments: - type: string + type: 'string' item_id: - type: string + type: 'string' name: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.function_call_arguments.done - type: string + - 'response.function_call_arguments.done' + type: 'string' required: - - type - - item_id - - output_index - - name - - arguments - - sequence_number - type: object + - 'type' + - 'item_id' + - 'output_index' + - 'name' + - 'arguments' + - 'sequence_number' + type: 'object' BaseInputs: anyOf: - - type: string + - type: 'string' - items: anyOf: - properties: @@ -3189,45 +3206,45 @@ components: input_file: '#/components/schemas/InputFile' input_image: '#/components/schemas/InputImage' input_text: '#/components/schemas/InputText' - propertyName: type + propertyName: 'type' oneOf: - $ref: '#/components/schemas/InputText' - $ref: '#/components/schemas/InputImage' - $ref: '#/components/schemas/InputFile' - $ref: '#/components/schemas/InputAudio' - type: array - - type: string + type: 'array' + - type: 'string' phase: anyOf: - enum: - - commentary - type: string + - 'commentary' + type: 'string' - enum: - - final_answer - type: string - - nullable: true + - 'final_answer' + type: 'string' + - type: 'null' role: anyOf: - enum: - - user - type: string + - 'user' + type: 'string' - enum: - - system - type: string + - 'system' + type: 'string' - enum: - - assistant - type: string + - 'assistant' + type: 'string' - enum: - - developer - type: string + - 'developer' + type: 'string' type: enum: - - message - type: string + - 'message' + type: 'string' required: - - role - - content - type: object + - 'role' + - 'content' + type: 'object' - $ref: '#/components/schemas/OpenAIResponseInputMessageItem' - $ref: '#/components/schemas/OpenAIResponseFunctionToolCallOutput' - $ref: '#/components/schemas/OpenAIResponseFunctionToolCall' @@ -3237,57 +3254,63 @@ components: - $ref: '#/components/schemas/OpenAIResponseCustomToolCallOutput' - $ref: '#/components/schemas/ApplyPatchCallItem' - $ref: '#/components/schemas/ApplyPatchCallOutputItem' - type: array - - nullable: true + type: 'array' + - type: 'null' example: - - content: What is the weather today? - role: user + - content: 'What is the weather today?' + role: 'user' BaseMessagesResult: - description: Base Anthropic Messages API response before OpenRouter extensions + description: 'Base Anthropic Messages API response before OpenRouter extensions' example: container: null content: - citations: [] - text: Hello! - type: text - id: msg_01XFDUDYJgAACzvnptvVoYEL - model: claude-sonnet-4-5-20250929 - role: assistant + text: 'Hello!' + type: 'text' + id: 'msg_01XFDUDYJgAACzvnptvVoYEL' + model: 'claude-sonnet-4-5-20250929' + role: 'assistant' stop_details: null - stop_reason: end_turn + stop_reason: 'end_turn' stop_sequence: null - type: message + type: 'message' usage: + cache_creation: null cache_creation_input_tokens: null cache_read_input_tokens: null + inference_geo: null input_tokens: 12 output_tokens: 8 + output_tokens_details: null + server_tool_use: null + service_tier: 'standard' properties: container: $ref: '#/components/schemas/AnthropicContainer' content: items: $ref: '#/components/schemas/ORAnthropicContentBlock' - type: array + type: 'array' id: - type: string + type: 'string' model: - type: string + type: 'string' role: enum: - - assistant - type: string + - 'assistant' + type: 'string' stop_details: $ref: '#/components/schemas/AnthropicRefusalStopDetails' stop_reason: $ref: '#/components/schemas/ORAnthropicStopReason' stop_sequence: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - message - type: string + - 'message' + type: 'string' usage: allOf: - $ref: '#/components/schemas/AnthropicUsage' @@ -3295,10 +3318,10 @@ components: iterations: items: $ref: '#/components/schemas/AnthropicUsageIteration' - type: array + type: 'array' speed: $ref: '#/components/schemas/AnthropicSpeed' - type: object + type: 'object' example: cache_creation: null cache_creation_input_tokens: null @@ -3308,24 +3331,23 @@ components: output_tokens: 50 output_tokens_details: null server_tool_use: null - service_tier: standard - required: - - id - - type - - role - - container - - content - - model - - stop_reason - - stop_details - - stop_sequence - - usage - type: object + service_tier: 'standard' + required: + - 'id' + - 'type' + - 'role' + - 'container' + - 'content' + - 'model' + - 'stop_reason' + - 'stop_details' + - 'stop_sequence' + - 'usage' + type: 'object' BaseReasoningConfig: example: - effort: medium - summary: auto - nullable: true + effort: 'medium' + summary: 'auto' properties: context: $ref: '#/components/schemas/ReasoningContext' @@ -3335,321 +3357,330 @@ components: $ref: '#/components/schemas/ReasoningMode' summary: $ref: '#/components/schemas/ReasoningSummaryVerbosity' - type: object + type: + - 'object' + - 'null' BaseReasoningDeltaEvent: - description: Event emitted when reasoning text delta is streamed + description: 'Event emitted when reasoning text delta is streamed' example: content_index: 0 - delta: First, we need - item_id: item-1 + delta: 'First, we need' + item_id: 'item-1' output_index: 0 sequence_number: 4 - type: response.reasoning_text.delta + type: 'response.reasoning_text.delta' properties: content_index: - type: integer + type: 'integer' delta: - type: string + type: 'string' item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.reasoning_text.delta - type: string + - 'response.reasoning_text.delta' + type: 'string' required: - - type - - output_index - - item_id - - content_index - - delta - - sequence_number - type: object + - 'type' + - 'output_index' + - 'item_id' + - 'content_index' + - 'delta' + - 'sequence_number' + type: 'object' BaseReasoningDoneEvent: - description: Event emitted when reasoning text streaming is complete + description: 'Event emitted when reasoning text streaming is complete' example: content_index: 0 - item_id: item-1 + item_id: 'item-1' output_index: 0 sequence_number: 6 - text: First, we need to identify the key components and then combine them logically. - type: response.reasoning_text.done + text: 'First, we need to identify the key components and then combine them logically.' + type: 'response.reasoning_text.done' properties: content_index: - type: integer + type: 'integer' item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' text: - type: string + type: 'string' type: enum: - - response.reasoning_text.done - type: string + - 'response.reasoning_text.done' + type: 'string' required: - - type - - output_index - - item_id - - content_index - - text - - sequence_number - type: object + - 'type' + - 'output_index' + - 'item_id' + - 'content_index' + - 'text' + - 'sequence_number' + type: 'object' BaseReasoningSummaryPartAddedEvent: - description: Event emitted when a reasoning summary part is added + description: 'Event emitted when a reasoning summary part is added' example: - item_id: item-1 + item_id: 'item-1' output_index: 0 part: text: '' - type: summary_text + type: 'summary_text' sequence_number: 3 summary_index: 0 - type: response.reasoning_summary_part.added + type: 'response.reasoning_summary_part.added' properties: item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' part: $ref: '#/components/schemas/ReasoningSummaryText' sequence_number: - type: integer + type: 'integer' summary_index: - type: integer + type: 'integer' type: enum: - - response.reasoning_summary_part.added - type: string + - 'response.reasoning_summary_part.added' + type: 'string' required: - - type - - output_index - - item_id - - summary_index - - part - - sequence_number - type: object + - 'type' + - 'output_index' + - 'item_id' + - 'summary_index' + - 'part' + - 'sequence_number' + type: 'object' BaseReasoningSummaryPartDoneEvent: - description: Event emitted when a reasoning summary part is complete + description: 'Event emitted when a reasoning summary part is complete' example: - item_id: item-1 + item_id: 'item-1' output_index: 0 part: - text: Analyzing the problem step by step to find the optimal solution. - type: summary_text + text: 'Analyzing the problem step by step to find the optimal solution.' + type: 'summary_text' sequence_number: 7 summary_index: 0 - type: response.reasoning_summary_part.done + type: 'response.reasoning_summary_part.done' properties: item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' part: $ref: '#/components/schemas/ReasoningSummaryText' sequence_number: - type: integer + type: 'integer' summary_index: - type: integer + type: 'integer' type: enum: - - response.reasoning_summary_part.done - type: string + - 'response.reasoning_summary_part.done' + type: 'string' required: - - type - - output_index - - item_id - - summary_index - - part - - sequence_number - type: object + - 'type' + - 'output_index' + - 'item_id' + - 'summary_index' + - 'part' + - 'sequence_number' + type: 'object' BaseReasoningSummaryTextDeltaEvent: - description: Event emitted when reasoning summary text delta is streamed + description: 'Event emitted when reasoning summary text delta is streamed' example: - delta: Analyzing - item_id: item-1 + delta: 'Analyzing' + item_id: 'item-1' output_index: 0 sequence_number: 4 summary_index: 0 - type: response.reasoning_summary_text.delta + type: 'response.reasoning_summary_text.delta' properties: delta: - type: string + type: 'string' item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' summary_index: - type: integer + type: 'integer' type: enum: - - response.reasoning_summary_text.delta - type: string + - 'response.reasoning_summary_text.delta' + type: 'string' required: - - type - - item_id - - output_index - - summary_index - - delta - - sequence_number - type: object + - 'type' + - 'item_id' + - 'output_index' + - 'summary_index' + - 'delta' + - 'sequence_number' + type: 'object' BaseReasoningSummaryTextDoneEvent: - description: Event emitted when reasoning summary text streaming is complete + description: 'Event emitted when reasoning summary text streaming is complete' example: - item_id: item-1 + item_id: 'item-1' output_index: 0 sequence_number: 6 summary_index: 0 - text: Analyzing the problem step by step to find the optimal solution. - type: response.reasoning_summary_text.done + text: 'Analyzing the problem step by step to find the optimal solution.' + type: 'response.reasoning_summary_text.done' properties: item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' summary_index: - type: integer + type: 'integer' text: - type: string + type: 'string' type: enum: - - response.reasoning_summary_text.done - type: string + - 'response.reasoning_summary_text.done' + type: 'string' required: - - type - - item_id - - output_index - - summary_index - - text - - sequence_number - type: object + - 'type' + - 'item_id' + - 'output_index' + - 'summary_index' + - 'text' + - 'sequence_number' + type: 'object' BaseRefusalDeltaEvent: - description: Event emitted when a refusal delta is streamed + description: 'Event emitted when a refusal delta is streamed' example: content_index: 0 - delta: I'm sorry - item_id: item-1 + delta: 'I''m sorry' + item_id: 'item-1' output_index: 0 sequence_number: 4 - type: response.refusal.delta + type: 'response.refusal.delta' properties: content_index: - type: integer + type: 'integer' delta: - type: string + type: 'string' item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.refusal.delta - type: string + - 'response.refusal.delta' + type: 'string' required: - - type - - output_index - - item_id - - content_index - - delta - - sequence_number - type: object + - 'type' + - 'output_index' + - 'item_id' + - 'content_index' + - 'delta' + - 'sequence_number' + type: 'object' BaseRefusalDoneEvent: - description: Event emitted when refusal streaming is complete + description: 'Event emitted when refusal streaming is complete' example: content_index: 0 - item_id: item-1 + item_id: 'item-1' output_index: 0 - refusal: I'm sorry, but I can't assist with that request. + refusal: 'I''m sorry, but I can''t assist with that request.' sequence_number: 6 - type: response.refusal.done + type: 'response.refusal.done' properties: content_index: - type: integer + type: 'integer' item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' refusal: - type: string + type: 'string' sequence_number: - type: integer + type: 'integer' type: enum: - - response.refusal.done - type: string + - 'response.refusal.done' + type: 'string' required: - - type - - output_index - - item_id - - content_index - - refusal - - sequence_number - type: object + - 'type' + - 'output_index' + - 'item_id' + - 'content_index' + - 'refusal' + - 'sequence_number' + type: 'object' BaseResponsesResult: example: completed_at: 1704067210 created_at: 1704067200 error: null - id: resp-abc123 + frequency_penalty: null + id: 'resp-abc123' incomplete_details: null instructions: null max_output_tokens: null metadata: null - model: gpt-4 - object: response + model: 'gpt-4' + object: 'response' output: [] parallel_tool_calls: true - status: completed + presence_penalty: null + status: 'completed' temperature: null - tool_choice: auto + tool_choice: 'auto' tools: [] top_p: null properties: background: - nullable: true - type: boolean + type: + - 'boolean' + - 'null' completed_at: - nullable: true - type: integer + type: + - 'integer' + - 'null' created_at: - type: integer + type: 'integer' error: $ref: '#/components/schemas/ResponsesErrorField' frequency_penalty: - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' id: - type: string + type: 'string' incomplete_details: $ref: '#/components/schemas/IncompleteDetails' instructions: $ref: '#/components/schemas/BaseInputs' max_output_tokens: - nullable: true - type: integer + type: + - 'integer' + - 'null' max_tool_calls: - nullable: true - type: integer + type: + - 'integer' + - 'null' metadata: $ref: '#/components/schemas/RequestMetadata' model: - type: string + type: 'string' object: enum: - - response - type: string + - 'response' + type: 'string' output: items: discriminator: @@ -3662,7 +3693,7 @@ components: message: '#/components/schemas/OutputMessage' reasoning: '#/components/schemas/OutputItemReasoning' web_search_call: '#/components/schemas/OutputItemWebSearchCall' - propertyName: type + propertyName: 'type' oneOf: - $ref: '#/components/schemas/OutputMessage' - $ref: '#/components/schemas/OutputItemReasoning' @@ -3672,38 +3703,43 @@ components: - $ref: '#/components/schemas/OutputItemFileSearchCall' - $ref: '#/components/schemas/OutputItemImageGenerationCall' - $ref: '#/components/schemas/OutputItemApplyPatchCall' - type: array + type: 'array' output_text: - type: string + type: 'string' parallel_tool_calls: - type: boolean + type: 'boolean' presence_penalty: - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' previous_response_id: - nullable: true - type: string + type: + - 'string' + - 'null' prompt: $ref: '#/components/schemas/StoredPromptTemplate' prompt_cache_key: - nullable: true - type: string + type: + - 'string' + - 'null' reasoning: $ref: '#/components/schemas/BaseReasoningConfig' safety_identifier: - nullable: true - type: string + type: + - 'string' + - 'null' service_tier: $ref: '#/components/schemas/ServiceTier' status: $ref: '#/components/schemas/OpenAIResponsesResponseStatus' store: - type: boolean + type: 'boolean' temperature: - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' text: $ref: '#/components/schemas/TextConfig' tool_choice: @@ -3714,26 +3750,26 @@ components: - allOf: - $ref: '#/components/schemas/FunctionTool' - properties: {} - type: object - description: Function tool definition + type: 'object' + description: 'Function tool definition' example: - description: Get the current weather in a location - name: get_weather + description: 'Get the current weather in a location' + name: 'get_weather' parameters: properties: location: - description: The city and state - type: string + description: 'The city and state' + type: 'string' unit: enum: - - celsius - - fahrenheit - type: string + - 'celsius' + - 'fahrenheit' + type: 'string' x-speakeasy-unknown-values: allow required: - - location - type: object - type: function + - 'location' + type: 'object' + type: 'function' - $ref: '#/components/schemas/Preview_WebSearchServerTool' - $ref: '#/components/schemas/Preview_20250311_WebSearchServerTool' - $ref: '#/components/schemas/Legacy_WebSearchServerTool' @@ -3748,138 +3784,140 @@ components: - $ref: '#/components/schemas/ApplyPatchServerTool' - $ref: '#/components/schemas/CustomTool' - $ref: '#/components/schemas/NamespaceTool' - type: array + type: 'array' top_logprobs: - type: integer + type: 'integer' top_p: - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' truncation: $ref: '#/components/schemas/Truncation' usage: $ref: '#/components/schemas/OpenAIResponsesUsage' user: - nullable: true - type: string - required: - - id - - object - - created_at - - model - - status - - completed_at - - output - - error - - incomplete_details - - temperature - - top_p - - presence_penalty - - frequency_penalty - - instructions - - metadata - - tools - - tool_choice - - parallel_tool_calls - type: object + type: + - 'string' + - 'null' + required: + - 'id' + - 'object' + - 'created_at' + - 'model' + - 'status' + - 'completed_at' + - 'output' + - 'error' + - 'incomplete_details' + - 'temperature' + - 'top_p' + - 'presence_penalty' + - 'frequency_penalty' + - 'instructions' + - 'metadata' + - 'tools' + - 'tool_choice' + - 'parallel_tool_calls' + type: 'object' BaseTextDeltaEvent: - description: Event emitted when a text delta is streamed + description: 'Event emitted when a text delta is streamed' example: content_index: 0 - delta: Hello - item_id: item-1 + delta: 'Hello' + item_id: 'item-1' logprobs: [] output_index: 0 sequence_number: 4 - type: response.output_text.delta + type: 'response.output_text.delta' properties: content_index: - type: integer + type: 'integer' delta: - type: string + type: 'string' item_id: - type: string + type: 'string' logprobs: items: $ref: '#/components/schemas/OpenResponsesLogProbs' - type: array + type: 'array' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.output_text.delta - type: string + - 'response.output_text.delta' + type: 'string' required: - - type - - logprobs - - output_index - - item_id - - content_index - - delta - - sequence_number - type: object + - 'type' + - 'logprobs' + - 'output_index' + - 'item_id' + - 'content_index' + - 'delta' + - 'sequence_number' + type: 'object' BaseTextDoneEvent: - description: Event emitted when text streaming is complete + description: 'Event emitted when text streaming is complete' example: content_index: 0 - item_id: item-1 + item_id: 'item-1' logprobs: [] output_index: 0 sequence_number: 6 - text: Hello! How can I help you? - type: response.output_text.done + text: 'Hello! How can I help you?' + type: 'response.output_text.done' properties: content_index: - type: integer + type: 'integer' item_id: - type: string + type: 'string' logprobs: items: $ref: '#/components/schemas/OpenResponsesLogProbs' - type: array + type: 'array' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' text: - type: string + type: 'string' type: enum: - - response.output_text.done - type: string + - 'response.output_text.done' + type: 'string' required: - - type - - output_index - - item_id - - content_index - - text - - sequence_number - - logprobs - type: object + - 'type' + - 'output_index' + - 'item_id' + - 'content_index' + - 'text' + - 'sequence_number' + - 'logprobs' + type: 'object' BashServerTool: description: 'OpenRouter built-in server tool: runs shell commands server-side in a sandboxed container' example: parameters: environment: - type: container_auto - type: openrouter:bash + type: 'container_auto' + type: 'openrouter:bash' properties: parameters: $ref: '#/components/schemas/BashServerToolConfig' type: enum: - - openrouter:bash - type: string + - 'openrouter:bash' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' BashServerToolConfig: - description: Configuration for the openrouter:bash server tool + description: 'Configuration for the openrouter:bash server tool' example: environment: - type: container_auto + type: 'container_auto' properties: engine: $ref: '#/components/schemas/BashServerToolEngine' @@ -3887,229 +3925,228 @@ components: $ref: '#/components/schemas/BashServerToolEnvironment' sleep_after_seconds: $ref: '#/components/schemas/SandboxSleepAfterSeconds' - type: object + type: 'object' BashServerToolEngine: - description: >- - Which bash engine to use. "openrouter" runs commands server-side in the OpenRouter sandbox. "auto" (default) and "native" use native passthrough, returning the tool call to your application to run client-side; OpenRouter does not execute the commands. + description: 'Which bash engine to use. "openrouter" runs commands server-side in the OpenRouter sandbox. "auto" (default) and "native" use native passthrough, returning the tool call to your application to run client-side; OpenRouter does not execute the commands.' enum: - - auto - - native - - openrouter - example: auto - type: string + - 'auto' + - 'native' + - 'openrouter' + example: 'auto' + type: 'string' x-speakeasy-unknown-values: allow BashServerToolEnvironment: - description: Execution environment for the bash server tool. + description: 'Execution environment for the bash server tool.' discriminator: mapping: container_auto: '#/components/schemas/ContainerAutoEnvironment' container_reference: '#/components/schemas/ContainerReferenceEnvironment' - propertyName: type + propertyName: 'type' example: - type: container_auto + type: 'container_auto' oneOf: - $ref: '#/components/schemas/ContainerAutoEnvironment' - $ref: '#/components/schemas/ContainerReferenceEnvironment' BooleanCapability: - description: A supported-or-not flag. Present means the parameter is accepted. + description: 'A supported-or-not flag. Present means the parameter is accepted.' example: - type: boolean + type: 'boolean' properties: type: enum: - - boolean - type: string + - 'boolean' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' BulkAddWorkspaceMembersRequest: example: user_ids: - - user_abc123 - - user_def456 + - 'user_abc123' + - 'user_def456' properties: user_ids: - description: List of user IDs to add to the workspace. Members are assigned the same role they hold in the organization. + description: 'List of user IDs to add to the workspace. Members are assigned the same role they hold in the organization.' example: - - user_abc123 - - user_def456 + - 'user_abc123' + - 'user_def456' items: - type: string + type: 'string' maxItems: 100 minItems: 1 - type: array + type: 'array' required: - - user_ids - type: object + - 'user_ids' + type: 'object' BulkAddWorkspaceMembersResponse: example: added_count: 1 data: - created_at: '2025-08-24T10:30:00Z' - id: 660e8400-e29b-41d4-a716-446655440000 - role: member - user_id: user_abc123 - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + id: '660e8400-e29b-41d4-a716-446655440000' + role: 'member' + user_id: 'user_abc123' + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: added_count: - description: Number of workspace memberships created or updated + description: 'Number of workspace memberships created or updated' example: 2 - type: integer + type: 'integer' data: - description: List of added workspace memberships + description: 'List of added workspace memberships' items: $ref: '#/components/schemas/WorkspaceMember' - type: array + type: 'array' required: - - data - - added_count - type: object + - 'data' + - 'added_count' + type: 'object' BulkAssignKeysRequest: example: key_hashes: - - c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93 + - 'c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93' properties: key_hashes: - description: Array of API key hashes to assign to the guardrail + description: 'Array of API key hashes to assign to the guardrail' example: - - c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93 + - 'c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93' items: minLength: 1 - type: string + type: 'string' minItems: 1 - type: array + type: 'array' required: - - key_hashes - type: object + - 'key_hashes' + type: 'object' BulkAssignKeysResponse: example: assigned_count: 3 properties: assigned_count: - description: Number of keys successfully assigned + description: 'Number of keys successfully assigned' example: 3 - type: integer + type: 'integer' required: - - assigned_count - type: object + - 'assigned_count' + type: 'object' BulkAssignMembersRequest: example: member_user_ids: - - user_abc123 - - user_def456 + - 'user_abc123' + - 'user_def456' properties: member_user_ids: - description: Array of member user IDs to assign to the guardrail + description: 'Array of member user IDs to assign to the guardrail' example: - - user_abc123 - - user_def456 + - 'user_abc123' + - 'user_def456' items: minLength: 1 - type: string + type: 'string' minItems: 1 - type: array + type: 'array' required: - - member_user_ids - type: object + - 'member_user_ids' + type: 'object' BulkAssignMembersResponse: example: assigned_count: 2 properties: assigned_count: - description: Number of members successfully assigned + description: 'Number of members successfully assigned' example: 2 - type: integer + type: 'integer' required: - - assigned_count - type: object + - 'assigned_count' + type: 'object' BulkRemoveWorkspaceMembersRequest: example: user_ids: - - user_abc123 - - user_def456 + - 'user_abc123' + - 'user_def456' properties: user_ids: - description: List of user IDs to remove from the workspace + description: 'List of user IDs to remove from the workspace' example: - - user_abc123 - - user_def456 + - 'user_abc123' + - 'user_def456' items: - type: string + type: 'string' maxItems: 100 minItems: 1 - type: array + type: 'array' required: - - user_ids - type: object + - 'user_ids' + type: 'object' BulkRemoveWorkspaceMembersResponse: example: removed_count: 2 properties: removed_count: - description: Number of members removed + description: 'Number of members removed' example: 2 - type: integer + type: 'integer' required: - - removed_count - type: object + - 'removed_count' + type: 'object' BulkUnassignKeysRequest: example: key_hashes: - - c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93 + - 'c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93' properties: key_hashes: - description: Array of API key hashes to unassign from the guardrail + description: 'Array of API key hashes to unassign from the guardrail' example: - - c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93 + - 'c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93' items: minLength: 1 - type: string + type: 'string' minItems: 1 - type: array + type: 'array' required: - - key_hashes - type: object + - 'key_hashes' + type: 'object' BulkUnassignKeysResponse: example: unassigned_count: 3 properties: unassigned_count: - description: Number of keys successfully unassigned + description: 'Number of keys successfully unassigned' example: 3 - type: integer + type: 'integer' required: - - unassigned_count - type: object + - 'unassigned_count' + type: 'object' BulkUnassignMembersRequest: example: member_user_ids: - - user_abc123 - - user_def456 + - 'user_abc123' + - 'user_def456' properties: member_user_ids: - description: Array of member user IDs to unassign from the guardrail + description: 'Array of member user IDs to unassign from the guardrail' example: - - user_abc123 - - user_def456 + - 'user_abc123' + - 'user_def456' items: minLength: 1 - type: string + type: 'string' minItems: 1 - type: array + type: 'array' required: - - member_user_ids - type: object + - 'member_user_ids' + type: 'object' BulkUnassignMembersResponse: example: unassigned_count: 2 properties: unassigned_count: - description: Number of members successfully unassigned + description: 'Number of members successfully unassigned' example: 2 - type: integer + type: 'integer' required: - - unassigned_count - type: object + - 'unassigned_count' + type: 'object' BYOKKey: example: allowed_api_key_hashes: null @@ -4117,420 +4154,421 @@ components: allowed_user_ids: null created_at: '2025-08-24T10:30:00Z' disabled: false - id: 11111111-2222-3333-4444-555555555555 + id: '11111111-2222-3333-4444-555555555555' is_fallback: false - label: sk-...AbCd - name: Production OpenAI Key - provider: openai + label: 'sk-...AbCd' + name: 'Production OpenAI Key' + provider: 'openai' sort_order: 0 - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: allowed_api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) that may use this credential. `null` means no restriction. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) that may use this credential. `null` means no restriction.' example: - - f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 + - 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' items: - type: string + type: 'string' maxItems: 100 - nullable: true - type: array + type: + - 'array' + - 'null' allowed_models: - description: Optional allowlist of model slugs this credential may be used for. `null` means no restriction. + description: 'Optional allowlist of model slugs this credential may be used for. `null` means no restriction.' example: null items: - type: string + type: 'string' maxItems: 100 - nullable: true - type: array + type: + - 'array' + - 'null' allowed_user_ids: - description: Optional allowlist of user IDs that may use this credential. `null` means no restriction. + description: 'Optional allowlist of user IDs that may use this credential. `null` means no restriction.' example: null items: - type: string + type: 'string' maxItems: 100 - nullable: true - type: array + type: + - 'array' + - 'null' created_at: - description: ISO timestamp of when the credential was created. + description: 'ISO timestamp of when the credential was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' disabled: - description: Whether this credential is currently disabled. + description: 'Whether this credential is currently disabled.' example: false - type: boolean + type: 'boolean' id: - description: Stable public identifier for this BYOK credential. - example: 11111111-2222-3333-4444-555555555555 - format: uuid - type: string + description: 'Stable public identifier for this BYOK credential.' + example: '11111111-2222-3333-4444-555555555555' + format: 'uuid' + type: 'string' is_fallback: - description: >- - Whether this credential is treated as a fallback — used only after non-fallback keys for the same provider have been tried. + description: 'Whether this credential is treated as a fallback — used only after non-fallback keys for the same provider have been tried.' example: false - type: boolean + type: 'boolean' label: - description: Short masked snippet of the key (e.g. the first/last few characters) used to identify it in the UI. - example: sk-...AbCd - type: string + description: 'Short masked snippet of the key (e.g. the first/last few characters) used to identify it in the UI.' + example: 'sk-...AbCd' + type: 'string' name: - description: Optional human-readable name for the credential. - example: Production OpenAI Key - nullable: true - type: string + description: 'Optional human-readable name for the credential.' + example: 'Production OpenAI Key' + type: + - 'string' + - 'null' provider: $ref: '#/components/schemas/BYOKProviderSlug' sort_order: - description: Position within the provider — credentials are tried in ascending sort order. + description: 'Position within the provider — credentials are tried in ascending sort order.' example: 0 - type: integer + type: 'integer' workspace_id: - description: ID of the workspace this credential belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - provider - - workspace_id - - label - - disabled - - is_fallback - - allowed_models - - allowed_api_key_hashes - - allowed_user_ids - - sort_order - - created_at - type: object + description: 'ID of the workspace this credential belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'provider' + - 'workspace_id' + - 'label' + - 'disabled' + - 'is_fallback' + - 'allowed_models' + - 'allowed_api_key_hashes' + - 'allowed_user_ids' + - 'sort_order' + - 'created_at' + type: 'object' BYOKProviderSlug: - description: >- - The upstream provider this credential authenticates against, as a lowercase slug (e.g. `openai`, `anthropic`, `amazon-bedrock`). + description: 'The upstream provider this credential authenticates against, as a lowercase slug (e.g. `openai`, `anthropic`, `amazon-bedrock`).' enum: - - ai21 - - aion-labs - - akashml - - alibaba - - amazon-bedrock - - amazon-nova - - ambient - - anthropic - - arcee-ai - - atlas-cloud - - avian - - azure - - baidu - - baseten - - black-forest-labs - - byteplus - - cerebras - - chutes - - cirrascale - - clarifai - - cloudflare - - cohere - - crusoe - - darkbloom - - decart - - deepgram - - deepinfra - - deepseek - - dekallm - - digitalocean - - featherless - - fireworks - - friendli - - gmicloud - - google-ai-studio - - google-vertex - - groq - - heygen - - inception - - inceptron - - inferact-vllm - - inference-net - - infermatic - - inflection - - io-net - - ionstream - - krea - - liquid - - mancer - - mara - - meta - - minimax - - mistral - - modelrun - - modular - - moonshotai - - morph - - ncompass - - nebius - - nex-agi - - nextbit - - novita - - nvidia - - open-inference - - openai - - parasail - - perceptron - - perplexity - - phala - - poolside - - quiver - - recraft - - reka - - relace - - sail-research - - sakana - - sambanova - - seed - - siliconflow - - sourceful - - stepfun - - streamlake - - switchpoint - - tenstorrent - - together - - upstage - - venice - - wafer - - wandb - - xai - - xiaomi - - z-ai - example: openai - type: string + - 'ai21' + - 'aion-labs' + - 'akashml' + - 'alibaba' + - 'amazon-bedrock' + - 'amazon-nova' + - 'ambient' + - 'anthropic' + - 'arcee-ai' + - 'atlas-cloud' + - 'avian' + - 'azure' + - 'baidu' + - 'baseten' + - 'black-forest-labs' + - 'byteplus' + - 'cerebras' + - 'chutes' + - 'cirrascale' + - 'clarifai' + - 'cloudflare' + - 'cohere' + - 'crusoe' + - 'darkbloom' + - 'decart' + - 'deepgram' + - 'deepinfra' + - 'deepseek' + - 'dekallm' + - 'digitalocean' + - 'featherless' + - 'fireworks' + - 'friendli' + - 'gmicloud' + - 'google-ai-studio' + - 'google-vertex' + - 'groq' + - 'heygen' + - 'inception' + - 'inceptron' + - 'inferact-vllm' + - 'inference-net' + - 'infermatic' + - 'inflection' + - 'io-net' + - 'ionstream' + - 'krea' + - 'liquid' + - 'mancer' + - 'mara' + - 'meta' + - 'minimax' + - 'mistral' + - 'modelrun' + - 'modular' + - 'moonshotai' + - 'morph' + - 'ncompass' + - 'nebius' + - 'nex-agi' + - 'nextbit' + - 'novita' + - 'nvidia' + - 'open-inference' + - 'openai' + - 'parasail' + - 'perceptron' + - 'perplexity' + - 'phala' + - 'poolside' + - 'quiver' + - 'recraft' + - 'reka' + - 'relace' + - 'sail-research' + - 'sakana' + - 'sambanova' + - 'seed' + - 'siliconflow' + - 'sourceful' + - 'stepfun' + - 'streamlake' + - 'switchpoint' + - 'tencent' + - 'tenstorrent' + - 'together' + - 'upstage' + - 'venice' + - 'wafer' + - 'wandb' + - 'xai' + - 'xiaomi' + - 'z-ai' + example: 'openai' + type: 'string' x-speakeasy-unknown-values: allow CapabilityDescriptor: - description: A typed descriptor for one supported request parameter. + description: 'A typed descriptor for one supported request parameter.' discriminator: mapping: boolean: '#/components/schemas/BooleanCapability' enum: '#/components/schemas/EnumCapability' range: '#/components/schemas/RangeCapability' x-speakeasy-unknown-values: allow - propertyName: type + propertyName: 'type' example: - type: enum + type: 'enum' values: - - 1K - - 2K - - 4K + - '1K' + - '2K' + - '4K' oneOf: - $ref: '#/components/schemas/EnumCapability' - $ref: '#/components/schemas/RangeCapability' - $ref: '#/components/schemas/BooleanCapability' ChatAssistantImages: - description: Generated images from image generation models + description: 'Generated images from image generation models' example: - image_url: - url: data:image/png;base64,iVBORw0KGgo... + url: 'data:image/png;base64,iVBORw0KGgo...' items: properties: image_url: properties: url: - description: URL or base64-encoded data of the generated image - type: string + description: 'URL or base64-encoded data of the generated image' + type: 'string' required: - - url - type: object + - 'url' + type: 'object' required: - - image_url - type: object - type: array + - 'image_url' + type: 'object' + type: 'array' ChatAssistantMessage: - description: Assistant message for requests and responses + description: 'Assistant message for requests and responses' example: - content: The capital of France is Paris. - role: assistant + content: 'The capital of France is Paris.' + role: 'assistant' properties: audio: $ref: '#/components/schemas/ChatAudioOutput' content: anyOf: - - type: string + - type: 'string' - items: $ref: '#/components/schemas/ChatContentItems' - type: array - - nullable: true - description: Assistant message content + type: 'array' + - type: 'null' + description: 'Assistant message content' images: $ref: '#/components/schemas/ChatAssistantImages' name: - description: Optional name for the assistant - type: string + description: 'Optional name for the assistant' + type: 'string' reasoning: - description: Reasoning output - nullable: true - type: string + description: 'Reasoning output' + type: + - 'string' + - 'null' reasoning_details: $ref: '#/components/schemas/ChatReasoningDetails' refusal: - description: Refusal message if content was refused - nullable: true - type: string + description: 'Refusal message if content was refused' + type: + - 'string' + - 'null' role: enum: - - assistant - type: string + - 'assistant' + type: 'string' tool_calls: - description: Tool calls made by the assistant + description: 'Tool calls made by the assistant' items: $ref: '#/components/schemas/ChatToolCall' - type: array + type: 'array' required: - - role - type: object + - 'role' + type: 'object' ChatAudioOutput: - description: Audio output data or reference + description: 'Audio output data or reference' example: - data: UklGRnoGAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQoGAACBhYqFbF1f + data: 'UklGRnoGAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQoGAACBhYqFbF1f' expires_at: 1677652400 - id: audio_abc123 - transcript: Hello! How can I help you today? + id: 'audio_abc123' + transcript: 'Hello! How can I help you today?' properties: data: - description: Base64 encoded audio data - type: string + description: 'Base64 encoded audio data' + type: 'string' expires_at: - description: Audio expiration timestamp - type: integer + description: 'Audio expiration timestamp' + type: 'integer' id: - description: Audio output identifier - type: string + description: 'Audio output identifier' + type: 'string' transcript: - description: Audio transcript - type: string - type: object + description: 'Audio transcript' + type: 'string' + type: 'object' ChatChoice: - description: Chat completion choice + description: 'Chat completion choice' example: - finish_reason: stop + finish_reason: 'stop' index: 0 logprobs: null message: - content: The capital of France is Paris. - role: assistant + content: 'The capital of France is Paris.' + role: 'assistant' properties: finish_reason: $ref: '#/components/schemas/ChatFinishReasonEnum' index: - description: Choice index + description: 'Choice index' example: 0 - type: integer + type: 'integer' logprobs: $ref: '#/components/schemas/ChatTokenLogprobs' message: $ref: '#/components/schemas/ChatAssistantMessage' required: - - finish_reason - - index - - message - type: object + - 'finish_reason' + - 'index' + - 'message' + type: 'object' ChatContentAudio: - description: Audio input content part. Supported audio formats vary by provider. + description: 'Audio input content part. Supported audio formats vary by provider.' example: input_audio: - data: SGVsbG8gV29ybGQ= - format: wav - type: input_audio + data: 'SGVsbG8gV29ybGQ=' + format: 'wav' + type: 'input_audio' properties: input_audio: properties: data: - description: Base64 encoded audio data - type: string + description: 'Base64 encoded audio data' + type: 'string' format: - description: >- - Audio format (e.g., wav, mp3, flac, m4a, ogg, aiff, aac, pcm16, pcm24). Supported formats vary by provider. - type: string + description: 'Audio format (e.g., wav, mp3, flac, m4a, ogg, aiff, aac, pcm16, pcm24). Supported formats vary by provider.' + type: 'string' required: - - data - - format - type: object + - 'data' + - 'format' + type: 'object' type: enum: - - input_audio - type: string + - 'input_audio' + type: 'string' required: - - type - - input_audio - type: object + - 'type' + - 'input_audio' + type: 'object' ChatContentCacheControl: allOf: - $ref: '#/components/schemas/AnthropicCacheControlDirective' - properties: {} - type: object - description: >- - Anthropic-style cache breakpoint for the content part. Interchangeable with the OpenAI-style `prompt_cache_breakpoint` marker: OpenRouter converts between the two based on the provider serving the request. + type: 'object' + description: 'Anthropic-style cache breakpoint for the content part. Interchangeable with the OpenAI-style `prompt_cache_breakpoint` marker: OpenRouter converts between the two based on the provider serving the request.' example: - ttl: 5m - type: ephemeral + ttl: '5m' + type: 'ephemeral' ChatContentFile: - description: File content part for document processing + description: 'File content part for document processing' example: file: - file_data: https://example.com/document.pdf - filename: document.pdf - type: file + file_data: 'https://example.com/document.pdf' + filename: 'document.pdf' + type: 'file' properties: file: properties: file_data: - description: File content as base64 data URL or URL - type: string + description: 'File content as base64 data URL or URL' + type: 'string' file_id: - description: File ID for previously uploaded files - type: string + description: 'File ID for previously uploaded files' + type: 'string' filename: - description: Original filename - type: string - type: object + description: 'Original filename' + type: 'string' + type: 'object' type: enum: - - file - type: string + - 'file' + type: 'string' required: - - type - - file - type: object + - 'type' + - 'file' + type: 'object' ChatContentImage: - description: Image content part for vision models + description: 'Image content part for vision models' example: image_url: - detail: auto - url: https://example.com/image.jpg - type: image_url + detail: 'auto' + url: 'https://example.com/image.jpg' + type: 'image_url' properties: image_url: properties: detail: - description: >- - Image detail level for vision models. `original` is an OpenRouter extension (not in the OpenAI Chat Completions spec) requesting true original-resolution media; it is downgraded to `high` for providers that lack an original-resolution tier. + description: 'Image detail level for vision models. `original` is an OpenRouter extension (not in the OpenAI Chat Completions spec) requesting true original-resolution media; it is downgraded to `high` for providers that lack an original-resolution tier.' enum: - - auto - - low - - high - - original - type: string + - 'auto' + - 'low' + - 'high' + - 'original' + type: 'string' x-speakeasy-unknown-values: allow url: description: 'URL of the image (data: URLs supported)' - type: string + type: 'string' required: - - url - type: object + - 'url' + type: 'object' type: enum: - - image_url - type: string + - 'image_url' + type: 'string' required: - - type - - image_url - type: object + - 'type' + - 'image_url' + type: 'object' ChatContentItems: - description: Content part for chat completion messages + description: 'Content part for chat completion messages' discriminator: mapping: file: '#/components/schemas/ChatContentFile' @@ -4539,10 +4577,10 @@ components: input_video: '#/components/schemas/Legacy_ChatContentVideo' text: '#/components/schemas/ChatContentText' video_url: '#/components/schemas/ChatContentVideo' - propertyName: type + propertyName: 'type' example: - text: Hello, world! - type: text + text: 'Hello, world!' + type: 'text' oneOf: - $ref: '#/components/schemas/ChatContentText' - $ref: '#/components/schemas/ChatContentImage' @@ -4551,237 +4589,237 @@ components: - $ref: '#/components/schemas/ChatContentVideo' - $ref: '#/components/schemas/ChatContentFile' ChatContentText: - description: Text content part + description: 'Text content part' example: - text: Hello, world! - type: text + text: 'Hello, world!' + type: 'text' properties: cache_control: $ref: '#/components/schemas/ChatContentCacheControl' prompt_cache_breakpoint: $ref: '#/components/schemas/PromptCacheBreakpoint' text: - type: string + type: 'string' type: enum: - - text - type: string + - 'text' + type: 'string' required: - - type - - text - type: object + - 'type' + - 'text' + type: 'object' ChatContentVideo: - description: Video input content part + description: 'Video input content part' example: - type: video_url + type: 'video_url' video_url: - url: https://example.com/video.mp4 + url: 'https://example.com/video.mp4' properties: type: enum: - - video_url - type: string + - 'video_url' + type: 'string' video_url: $ref: '#/components/schemas/ChatContentVideoInput' required: - - type - - video_url - type: object + - 'type' + - 'video_url' + type: 'object' ChatContentVideoInput: - description: Video input object + description: 'Video input object' example: - url: https://example.com/video.mp4 + url: 'https://example.com/video.mp4' properties: url: description: 'URL of the video (data: URLs supported)' - type: string + type: 'string' required: - - url - type: object + - 'url' + type: 'object' ChatDebugOptions: - description: Debug options for inspecting request transformations (streaming only) + description: 'Debug options for inspecting request transformations (streaming only)' example: echo_upstream_body: true properties: echo_upstream_body: - description: >- - If true, includes the transformed upstream request body in a debug chunk at the start of the stream. Only works with streaming mode. + description: 'If true, includes the transformed upstream request body in a debug chunk at the start of the stream. Only works with streaming mode.' example: true - type: boolean - type: object + type: 'boolean' + type: 'object' ChatDeveloperMessage: - description: Developer message + description: 'Developer message' example: - content: This is a message from the developer. - role: developer + content: 'This is a message from the developer.' + role: 'developer' properties: content: anyOf: - - type: string + - type: 'string' - items: $ref: '#/components/schemas/ChatContentText' - type: array - description: Developer message content - example: This is a message from the developer. + type: 'array' + description: 'Developer message content' + example: 'This is a message from the developer.' name: - description: Optional name for the developer message - example: Developer - type: string + description: 'Optional name for the developer message' + example: 'Developer' + type: 'string' role: enum: - - developer - type: string + - 'developer' + type: 'string' required: - - role - - content - type: object + - 'role' + - 'content' + type: 'object' ChatFinishReasonEnum: enum: - - tool_calls - - stop - - length - - content_filter - - error + - 'tool_calls' + - 'stop' + - 'length' + - 'content_filter' + - 'error' - null - example: stop - nullable: true - type: string + example: 'stop' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow ChatFormatGrammarConfig: - description: Custom grammar response format + description: 'Custom grammar response format' example: - grammar: root ::= "yes" | "no" - type: grammar + grammar: 'root ::= "yes" | "no"' + type: 'grammar' properties: grammar: - description: Custom grammar for text generation - example: root ::= "yes" | "no" - type: string + description: 'Custom grammar for text generation' + example: 'root ::= "yes" | "no"' + type: 'string' type: enum: - - grammar - type: string + - 'grammar' + type: 'string' required: - - type - - grammar - type: object + - 'type' + - 'grammar' + type: 'object' ChatFormatJsonObjectConfig: - description: JSON object response format + description: 'JSON object response format' example: - type: json_object + type: 'json_object' properties: type: enum: - - json_object - type: string + - 'json_object' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' ChatFormatJsonSchemaConfig: - description: JSON Schema response format for structured outputs + description: 'JSON Schema response format for structured outputs' example: json_schema: - name: math_response + name: 'math_response' schema: properties: answer: - type: number + type: 'number' required: - - answer - type: object - type: json_schema + - 'answer' + type: 'object' + type: 'json_schema' properties: json_schema: $ref: '#/components/schemas/ChatJsonSchemaConfig' type: enum: - - json_schema - type: string + - 'json_schema' + type: 'string' required: - - type - - json_schema - type: object + - 'type' + - 'json_schema' + type: 'object' ChatFormatPythonConfig: - description: Python code response format + description: 'Python code response format' example: - type: python + type: 'python' properties: type: enum: - - python - type: string + - 'python' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' ChatFormatTextConfig: - description: Default text response format + description: 'Default text response format' example: - type: text + type: 'text' properties: type: enum: - - text - type: string + - 'text' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' ChatFunctionTool: anyOf: - properties: cache_control: $ref: '#/components/schemas/ChatContentCacheControl' function: - description: Function definition for tool calling + description: 'Function definition for tool calling' example: - description: Get the current weather for a location - name: get_weather + description: 'Get the current weather for a location' + name: 'get_weather' parameters: properties: location: - description: City name - type: string + description: 'City name' + type: 'string' required: - - location - type: object + - 'location' + type: 'object' properties: description: - description: Function description for the model - example: Get the current weather for a location - type: string + description: 'Function description for the model' + example: 'Get the current weather for a location' + type: 'string' name: - description: Function name (a-z, A-Z, 0-9, underscores, dashes, max 64 chars) - example: get_weather + description: 'Function name (a-z, A-Z, 0-9, underscores, dashes, max 64 chars)' + example: 'get_weather' maxLength: 64 - type: string + type: 'string' parameters: - additionalProperties: - nullable: true - description: Function parameters as JSON Schema object + additionalProperties: {} + description: 'Function parameters as JSON Schema object' example: properties: location: - description: City name - type: string + description: 'City name' + type: 'string' required: - - location - type: object - type: object + - 'location' + type: 'object' + type: 'object' strict: - description: Enable strict schema adherence + description: 'Enable strict schema adherence' example: false - nullable: true - type: boolean + type: + - 'boolean' + - 'null' required: - - name - type: object + - 'name' + type: 'object' type: enum: - - function - type: string + - 'function' + type: 'string' required: - - type - - function - type: object + - 'type' + - 'function' + type: 'object' - $ref: '#/components/schemas/AdvisorServerTool_OpenRouter' - $ref: '#/components/schemas/BashServerTool' - $ref: '#/components/schemas/DatetimeServerTool' @@ -4793,71 +4831,71 @@ components: - $ref: '#/components/schemas/WebFetchServerTool' - $ref: '#/components/schemas/OpenRouterWebSearchServerTool' - $ref: '#/components/schemas/ChatWebSearchShorthand' - description: Tool definition for function calling (regular function or OpenRouter built-in server tool) + description: 'Tool definition for function calling (regular function or OpenRouter built-in server tool)' example: function: - description: Get the current weather for a location - name: get_weather + description: 'Get the current weather for a location' + name: 'get_weather' parameters: properties: location: - description: City name - type: string + description: 'City name' + type: 'string' unit: enum: - - celsius - - fahrenheit - type: string + - 'celsius' + - 'fahrenheit' + type: 'string' x-speakeasy-unknown-values: allow required: - - location - type: object - type: function + - 'location' + type: 'object' + type: 'function' ChatJsonSchemaConfig: - description: JSON Schema configuration object + description: 'JSON Schema configuration object' example: - description: A mathematical response - name: math_response + description: 'A mathematical response' + name: 'math_response' schema: properties: answer: - type: number + type: 'number' required: - - answer - type: object + - 'answer' + type: 'object' strict: true properties: description: - description: Schema description for the model - example: A mathematical response - type: string + description: 'Schema description for the model' + example: 'A mathematical response' + type: 'string' name: - description: Schema name (a-z, A-Z, 0-9, underscores, dashes, max 64 chars) - example: math_response + description: 'Schema name (a-z, A-Z, 0-9, underscores, dashes, max 64 chars)' + example: 'math_response' maxLength: 64 - type: string + type: 'string' schema: - additionalProperties: - nullable: true - description: JSON Schema object + additionalProperties: {} + description: 'JSON Schema object' example: properties: answer: - type: number + type: 'number' required: - - answer - type: object - type: object + - 'answer' + type: 'object' + type: 'object' strict: - description: Enable strict schema adherence + description: 'Enable strict schema adherence' example: false - nullable: true - type: boolean + type: + - 'boolean' + - 'null' required: - - name - type: object + - 'name' + type: 'object' ChatMessages: - description: Chat completion message with role-based discrimination + description: 'Chat completion message with role-based discrimination' discriminator: mapping: assistant: '#/components/schemas/ChatAssistantMessage' @@ -4865,10 +4903,10 @@ components: system: '#/components/schemas/ChatSystemMessage' tool: '#/components/schemas/ChatToolMessage' user: '#/components/schemas/ChatUserMessage' - propertyName: role + propertyName: 'role' example: - content: What is the capital of France? - role: user + content: 'What is the capital of France?' + role: 'user' oneOf: - $ref: '#/components/schemas/ChatSystemMessage' - $ref: '#/components/schemas/ChatUserMessage' @@ -4876,67 +4914,68 @@ components: - $ref: '#/components/schemas/ChatAssistantMessage' - $ref: '#/components/schemas/ChatToolMessage' ChatModelNames: - description: Models to use for completion + description: 'Models to use for completion' example: - - openai/gpt-4 - - openai/gpt-4o + - 'openai/gpt-4' + - 'openai/gpt-4o' items: allOf: - $ref: '#/components/schemas/ModelName' - - description: Available OpenRouter chat completion models - type: array + - description: 'Available OpenRouter chat completion models' + type: 'array' ChatNamedToolChoice: - description: Named tool choice for specific function + description: 'Named tool choice for specific function' example: function: - name: get_weather - type: function + name: 'get_weather' + type: 'function' properties: function: properties: name: - description: Function name to call - example: get_weather - type: string + description: 'Function name to call' + example: 'get_weather' + type: 'string' required: - - name - type: object + - 'name' + type: 'object' type: enum: - - function - type: string + - 'function' + type: 'string' required: - - type - - function - type: object + - 'type' + - 'function' + type: 'object' ChatReasoningDetails: - description: Reasoning details for extended thinking models + description: 'Reasoning details for extended thinking models' example: - - thinking: Let me work through this step by step... - type: thinking + - text: 'Let me work through this step by step...' + type: 'reasoning.text' items: $ref: '#/components/schemas/ReasoningDetailUnion' - type: array + type: 'array' ChatReasoningSummaryVerbosityEnum: enum: - - auto - - concise - - detailed + - 'auto' + - 'concise' + - 'detailed' - null - example: concise - nullable: true - type: string + example: 'concise' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow ChatRequest: - description: Chat completion request parameters + description: 'Chat completion request parameters' example: max_tokens: 150 messages: - - content: You are a helpful assistant. - role: system - - content: What is the capital of France? - role: user - model: openai/gpt-4 + - content: 'You are a helpful assistant.' + role: 'system' + - content: 'What is the capital of France?' + role: 'user' + model: 'openai/gpt-4' temperature: 0.7 properties: cache_control: @@ -4944,86 +4983,91 @@ components: debug: $ref: '#/components/schemas/ChatDebugOptions' frequency_penalty: - description: Frequency penalty (-2.0 to 2.0) + description: 'Frequency penalty (-2.0 to 2.0)' example: 0 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' image_config: $ref: '#/components/schemas/ImageConfig' logit_bias: additionalProperties: - format: double - type: number - description: Token logit bias adjustments + format: 'double' + type: 'number' + description: 'Token logit bias adjustments' example: '50256': -100 - nullable: true - type: object + type: + - 'object' + - 'null' logprobs: - description: Return log probabilities + description: 'Return log probabilities' example: false - nullable: true - type: boolean + type: + - 'boolean' + - 'null' max_completion_tokens: - description: Maximum tokens in completion + description: 'Maximum tokens in completion' example: 100 - nullable: true - type: integer + type: + - 'integer' + - 'null' max_tokens: description: 'Maximum tokens (deprecated, use max_completion_tokens). Note: some providers enforce a minimum of 16.' example: 100 - nullable: true - type: integer + type: + - 'integer' + - 'null' messages: - description: List of messages for the conversation + description: 'List of messages for the conversation' example: - - content: Hello! - role: user + - content: 'Hello!' + role: 'user' items: $ref: '#/components/schemas/ChatMessages' minItems: 1 - type: array + type: 'array' metadata: additionalProperties: - type: string - description: Key-value pairs for additional object information (max 16 pairs, 64 char keys, 512 char values) + type: 'string' + description: 'Key-value pairs for additional object information (max 16 pairs, 64 char keys, 512 char values)' example: - session_id: session-456 - user_id: user-123 - type: object + session_id: 'session-456' + user_id: 'user-123' + type: 'object' min_p: - description: >- - Minimum probability threshold relative to the most likely token. Tokens with probability below min_p * (probability of top token) are filtered out. Not all providers support this parameter. + description: 'Minimum probability threshold relative to the most likely token. Tokens with probability below min_p * (probability of top token) are filtered out. Not all providers support this parameter.' example: 0.1 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' modalities: - description: Output modalities for the response. Supported values are "text", "image", and "audio". + description: 'Output modalities for the response. Supported values are "text", "image", and "audio".' example: - - text - - image + - 'text' + - 'image' items: enum: - - text - - image - - audio - type: string + - 'text' + - 'image' + - 'audio' + type: 'string' x-speakeasy-unknown-values: allow - type: array + type: 'array' model: $ref: '#/components/schemas/ModelName' models: $ref: '#/components/schemas/ChatModelNames' parallel_tool_calls: - description: >- - Whether to enable parallel function calling during tool use. When true, the model may generate multiple tool calls in a single response. + description: 'Whether to enable parallel function calling during tool use. When true, the model may generate multiple tool calls in a single response.' example: true - nullable: true - type: boolean + type: + - 'boolean' + - 'null' plugins: - description: Plugins you want to enable for this request, including their settings. + description: 'Plugins you want to enable for this request, including their settings.' items: discriminator: mapping: @@ -5036,7 +5080,7 @@ components: response-healing: '#/components/schemas/ResponseHealingPlugin' web: '#/components/schemas/WebSearchPlugin' web-fetch: '#/components/schemas/WebFetchPlugin' - propertyName: id + propertyName: 'id' oneOf: - $ref: '#/components/schemas/AutoRouterPlugin' - $ref: '#/components/schemas/ModerationPlugin' @@ -5047,71 +5091,74 @@ components: - $ref: '#/components/schemas/ContextCompressionPlugin' - $ref: '#/components/schemas/ParetoRouterPlugin' - $ref: '#/components/schemas/FusionPlugin' - type: array + type: 'array' prediction: $ref: '#/components/schemas/Prediction' presence_penalty: - description: Presence penalty (-2.0 to 2.0) + description: 'Presence penalty (-2.0 to 2.0)' example: 0 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' prompt_cache_key: - nullable: true - type: string + type: + - 'string' + - 'null' prompt_cache_options: $ref: '#/components/schemas/PromptCacheOptions' provider: $ref: '#/components/schemas/ProviderPreferences' reasoning: - description: Configuration options for reasoning models + description: 'Configuration options for reasoning models' example: - effort: medium - summary: concise + effort: 'medium' + summary: 'concise' properties: effort: - description: Constrains effort on reasoning for reasoning models + description: 'Constrains effort on reasoning for reasoning models' enum: - - max - - xhigh - - high - - medium - - low - - minimal - - none + - 'max' + - 'xhigh' + - 'high' + - 'medium' + - 'low' + - 'minimal' + - 'none' - null - example: medium - nullable: true - type: string + example: 'medium' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow summary: $ref: '#/components/schemas/ChatReasoningSummaryVerbosityEnum' - type: object + type: 'object' reasoning_effort: - description: >- - Shorthand for setting reasoning effort. Equivalent to setting reasoning.effort. Cannot be used simultaneously with reasoning.effort if they differ. - enum: - - max - - xhigh - - high - - medium - - low - - minimal - - none + description: 'Shorthand for setting reasoning effort. Equivalent to setting reasoning.effort. Cannot be used simultaneously with reasoning.effort if they differ.' + enum: + - 'max' + - 'xhigh' + - 'high' + - 'medium' + - 'low' + - 'minimal' + - 'none' - null - example: medium - nullable: true - type: string + example: 'medium' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow repetition_penalty: - description: >- - Penalizes tokens based on how much they have already appeared in the text. A value of 1.0 means no penalty. Values above 1.0 penalize repeated tokens more strongly. Not all providers support this parameter. + description: 'Penalizes tokens based on how much they have already appeared in the text. A value of 1.0 means no penalty. Values above 1.0 penalize repeated tokens more strongly. Not all providers support this parameter.' example: 1 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' response_format: - description: Response format configuration + description: 'Response format configuration' discriminator: mapping: grammar: '#/components/schemas/ChatFormatGrammarConfig' @@ -5119,9 +5166,9 @@ components: json_schema: '#/components/schemas/ChatFormatJsonSchemaConfig' python: '#/components/schemas/ChatFormatPythonConfig' text: '#/components/schemas/ChatFormatTextConfig' - propertyName: type + propertyName: 'type' example: - type: json_object + type: 'json_object' oneOf: - $ref: '#/components/schemas/ChatFormatTextConfig' - $ref: '#/components/schemas/ChatFormatJsonObjectConfig' @@ -5131,195 +5178,201 @@ components: route: $ref: '#/components/schemas/DeprecatedRoute' seed: - description: Random seed for deterministic outputs + description: 'Random seed for deterministic outputs' example: 42 - nullable: true - type: integer + type: + - 'integer' + - 'null' service_tier: - description: The service tier to use for processing this request. + description: 'The service tier to use for processing this request.' enum: - - auto - - default - - flex - - priority - - scale + - 'auto' + - 'default' + - 'flex' + - 'priority' + - 'scale' - null - example: auto - nullable: true - type: string + example: 'auto' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow session_id: - description: >- - A unique identifier for grouping related requests (e.g., a conversation or agent workflow). When provided, OpenRouter uses it as the sticky routing key, routing all requests in the session to the same provider to maximize prompt cache hits. Also used for observability grouping. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters. + description: 'A unique identifier for grouping related requests (e.g., a conversation or agent workflow). When provided, OpenRouter uses it as the sticky routing key, routing all requests in the session to the same provider to maximize prompt cache hits. Also used for observability grouping. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters.' maxLength: 256 - type: string + type: 'string' stop: anyOf: - - type: string + - type: 'string' - items: - type: string + type: 'string' maxItems: 4 - type: array - - nullable: true - description: Stop sequences (up to 4) + type: 'array' + - type: 'null' + description: 'Stop sequences (up to 4)' example: - - "" + - "\n" stop_server_tools_when: $ref: '#/components/schemas/StopServerToolsWhen' stream: default: false - description: Enable streaming response + description: 'Enable streaming response' example: false - type: boolean + type: 'boolean' stream_options: $ref: '#/components/schemas/ChatStreamOptions' temperature: - description: Sampling temperature (0-2) + description: 'Sampling temperature (0-2)' example: 0.7 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' tool_choice: $ref: '#/components/schemas/ChatToolChoice' tools: - description: Available tools for function calling + description: 'Available tools for function calling' example: - function: - description: Get weather - name: get_weather - type: function + description: 'Get weather' + name: 'get_weather' + type: 'function' items: $ref: '#/components/schemas/ChatFunctionTool' - type: array + type: 'array' top_a: - description: >- - Consider only tokens with "sufficiently high" probabilities based on the probability of the most likely token. Not all providers support this parameter. + description: 'Consider only tokens with "sufficiently high" probabilities based on the probability of the most likely token. Not all providers support this parameter.' example: 0 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' top_k: - description: >- - Limits the model to choose from the top K most likely tokens at each step. A value of 1 means the model will always pick the most likely next token. Not all providers support this parameter. + description: 'Limits the model to choose from the top K most likely tokens at each step. A value of 1 means the model will always pick the most likely next token. Not all providers support this parameter.' example: 40 - nullable: true - type: integer + type: + - 'integer' + - 'null' top_logprobs: - description: Number of top log probabilities to return (0-20) + description: 'Number of top log probabilities to return (0-20)' example: 5 - nullable: true - type: integer + type: + - 'integer' + - 'null' top_p: - description: Nucleus sampling parameter (0-1) + description: 'Nucleus sampling parameter (0-1)' example: 1 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' trace: $ref: '#/components/schemas/TraceConfig' user: - description: Unique user identifier - example: user-123 - type: string + description: 'Unique user identifier' + example: 'user-123' + type: 'string' required: - - messages - type: object + - 'messages' + type: 'object' ChatResult: - description: Chat completion response + description: 'Chat completion response' example: choices: - - finish_reason: stop + - finish_reason: 'stop' index: 0 message: - content: The capital of France is Paris. - role: assistant + content: 'The capital of France is Paris.' + role: 'assistant' created: 1677652288 - id: chatcmpl-123 - model: openai/gpt-4 - object: chat.completion + id: 'chatcmpl-123' + model: 'openai/gpt-4' + object: 'chat.completion' + system_fingerprint: 'fp_44709d6fcb' usage: completion_tokens: 15 prompt_tokens: 10 total_tokens: 25 properties: choices: - description: List of completion choices + description: 'List of completion choices' items: $ref: '#/components/schemas/ChatChoice' - type: array + type: 'array' created: - description: Unix timestamp of creation + description: 'Unix timestamp of creation' example: 1677652288 - type: integer + type: 'integer' id: - description: Unique completion identifier - example: chatcmpl-123 - type: string + description: 'Unique completion identifier' + example: 'chatcmpl-123' + type: 'string' model: - description: Model used for completion - example: openai/gpt-4 - type: string + description: 'Model used for completion' + example: 'openai/gpt-4' + type: 'string' object: enum: - - chat.completion - type: string + - 'chat.completion' + type: 'string' openrouter_metadata: $ref: '#/components/schemas/OpenRouterMetadata' service_tier: - description: The service tier used by the upstream provider for this request - example: default - nullable: true - type: string + description: 'The service tier used by the upstream provider for this request' + example: 'default' + type: + - 'string' + - 'null' system_fingerprint: - description: System fingerprint - example: fp_44709d6fcb - nullable: true - type: string + description: 'System fingerprint' + example: 'fp_44709d6fcb' + type: + - 'string' + - 'null' usage: $ref: '#/components/schemas/ChatUsage' required: - - id - - choices - - created - - model - - object - - system_fingerprint - type: object + - 'id' + - 'choices' + - 'created' + - 'model' + - 'object' + - 'system_fingerprint' + type: 'object' ChatSearchModelsServerTool: description: 'OpenRouter built-in server tool: searches and filters AI models available on OpenRouter' example: parameters: max_results: 5 - type: openrouter:experimental__search_models + type: 'openrouter:experimental__search_models' properties: parameters: $ref: '#/components/schemas/SearchModelsServerToolConfig' type: enum: - - openrouter:experimental__search_models - type: string + - 'openrouter:experimental__search_models' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' ChatServerToolChoice: - description: >- - OpenRouter extension: force a specific server tool by naming it directly in `tool_choice.type` instead of wrapping it in `{ type: "function", function: { name } }`. + description: 'OpenRouter extension: force a specific server tool by naming it directly in `tool_choice.type` instead of wrapping it in `{ type: "function", function: { name } }`.' example: - type: openrouter:web_search + type: 'openrouter:web_search' properties: type: - description: OpenRouter server-tool type to force (e.g. `openrouter:web_search`, `web_search`, `web_search_preview`). - example: openrouter:web_search - type: string + description: 'OpenRouter server-tool type to force (e.g. `openrouter:web_search`, `web_search`, `web_search_preview`).' + example: 'openrouter:web_search' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' ChatStreamChoice: - description: Streaming completion choice chunk + description: 'Streaming completion choice chunk' example: delta: - content: Hello - role: assistant + content: 'Hello' + role: 'assistant' finish_reason: null index: 0 properties: @@ -5328,250 +5381,255 @@ components: finish_reason: $ref: '#/components/schemas/ChatFinishReasonEnum' index: - description: Choice index + description: 'Choice index' example: 0 - type: integer + type: 'integer' logprobs: $ref: '#/components/schemas/ChatTokenLogprobs' required: - - delta - - finish_reason - - index - type: object + - 'delta' + - 'finish_reason' + - 'index' + type: 'object' ChatStreamChunk: - description: Streaming chat completion chunk + description: 'Streaming chat completion chunk' example: choices: - delta: - content: Hello - role: assistant + content: 'Hello' + role: 'assistant' finish_reason: null index: 0 created: 1677652288 - id: chatcmpl-123 - model: openai/gpt-4 - object: chat.completion.chunk + id: 'chatcmpl-123' + model: 'openai/gpt-4' + object: 'chat.completion.chunk' properties: choices: - description: List of streaming chunk choices + description: 'List of streaming chunk choices' items: $ref: '#/components/schemas/ChatStreamChoice' - type: array + type: 'array' created: - description: Unix timestamp of creation + description: 'Unix timestamp of creation' example: 1677652288 - type: integer + type: 'integer' error: - description: Error information + description: 'Error information' example: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' metadata: - error_type: rate_limit_exceeded + error_type: 'rate_limit_exceeded' properties: code: - description: Error code + description: 'Error code' example: 429 - format: int32 - type: integer + format: 'int32' + type: 'integer' message: - description: Error message - example: Rate limit exceeded - type: string + description: 'Error message' + example: 'Rate limit exceeded' + type: 'string' metadata: - description: Structured error metadata + description: 'Structured error metadata' properties: error_type: $ref: '#/components/schemas/ApiErrorType' provider_code: - description: Upstream provider-specific error code, when available - type: string + description: 'Upstream provider-specific error code, when available' + type: 'string' required: - - error_type - type: object + - 'error_type' + type: 'object' required: - - message - - code - type: object + - 'message' + - 'code' + type: 'object' id: - description: Unique chunk identifier - example: chatcmpl-123 - type: string + description: 'Unique chunk identifier' + example: 'chatcmpl-123' + type: 'string' model: - description: Model used for completion - example: openai/gpt-4 - type: string + description: 'Model used for completion' + example: 'openai/gpt-4' + type: 'string' object: enum: - - chat.completion.chunk - type: string + - 'chat.completion.chunk' + type: 'string' openrouter_metadata: $ref: '#/components/schemas/OpenRouterMetadata' service_tier: - description: The service tier used by the upstream provider for this request - example: default - nullable: true - type: string + description: 'The service tier used by the upstream provider for this request' + example: 'default' + type: + - 'string' + - 'null' system_fingerprint: - description: System fingerprint - example: fp_44709d6fcb - type: string + description: 'System fingerprint' + example: 'fp_44709d6fcb' + type: 'string' usage: $ref: '#/components/schemas/ChatUsage' required: - - id - - choices - - created - - model - - object - type: object - x-speakeasy-entity: ChatStreamChunk + - 'id' + - 'choices' + - 'created' + - 'model' + - 'object' + type: 'object' + x-speakeasy-entity: 'ChatStreamChunk' ChatStreamDelta: - description: Delta changes in streaming response + description: 'Delta changes in streaming response' example: - content: Hello - role: assistant + content: 'Hello' + role: 'assistant' properties: audio: allOf: - $ref: '#/components/schemas/ChatAudioOutput' - - description: Audio output data + - description: 'Audio output data' content: - description: Message content delta - example: Hello - nullable: true - type: string + description: 'Message content delta' + example: 'Hello' + type: + - 'string' + - 'null' reasoning: - description: Reasoning content delta - example: I need to - nullable: true - type: string + description: 'Reasoning content delta' + example: 'I need to' + type: + - 'string' + - 'null' reasoning_details: $ref: '#/components/schemas/ChatStreamReasoningDetails' refusal: - description: Refusal message delta + description: 'Refusal message delta' example: null - nullable: true - type: string + type: + - 'string' + - 'null' role: - description: The role of the message author + description: 'The role of the message author' enum: - - assistant - example: assistant - type: string + - 'assistant' + example: 'assistant' + type: 'string' tool_calls: - description: Tool calls delta + description: 'Tool calls delta' items: $ref: '#/components/schemas/ChatStreamToolCall' - type: array - type: object + type: 'array' + type: 'object' ChatStreamingResponse: example: data: choices: - delta: - content: Hello - role: assistant + content: 'Hello' + role: 'assistant' finish_reason: null index: 0 created: 1677652288 - id: chatcmpl-123 - model: openai/gpt-4 - object: chat.completion.chunk + id: 'chatcmpl-123' + model: 'openai/gpt-4' + object: 'chat.completion.chunk' properties: data: $ref: '#/components/schemas/ChatStreamChunk' required: - - data - type: object + - 'data' + type: 'object' ChatStreamOptions: - description: Streaming configuration options + description: 'Streaming configuration options' example: include_usage: true - nullable: true properties: include_usage: deprecated: true description: 'Deprecated: This field has no effect. Full usage details are always included.' example: true - type: boolean - type: object + type: 'boolean' + type: + - 'object' + - 'null' ChatStreamReasoningDetails: - description: Reasoning details for extended thinking models + description: 'Reasoning details for extended thinking models' example: - - text: Let me think about this... - type: text + - text: 'Let me think about this...' + type: 'reasoning.text' items: $ref: '#/components/schemas/ReasoningDetailUnion' - type: array + type: 'array' ChatStreamToolCall: - description: Tool call delta for streaming responses + description: 'Tool call delta for streaming responses' example: function: arguments: '{"location": "..."}' - name: get_weather - id: call_abc123 + name: 'get_weather' + id: 'call_abc123' index: 0 - type: function + type: 'function' properties: function: - description: Function call details + description: 'Function call details' properties: arguments: - description: Function arguments as JSON string + description: 'Function arguments as JSON string' example: '{"location": "..."}' - type: string + type: 'string' name: - description: Function name - example: get_weather - type: string - type: object + description: 'Function name' + example: 'get_weather' + type: 'string' + type: 'object' id: - description: Tool call identifier - example: call_abc123 - type: string + description: 'Tool call identifier' + example: 'call_abc123' + type: 'string' index: - description: Tool call index in the array + description: 'Tool call index in the array' example: 0 - type: integer + type: 'integer' type: - description: Tool call type + description: 'Tool call type' enum: - - function - example: function - type: string + - 'function' + example: 'function' + type: 'string' required: - - index - type: object + - 'index' + type: 'object' ChatSystemMessage: - description: System message for setting behavior + description: 'System message for setting behavior' example: - content: You are a helpful assistant. - name: Assistant Config - role: system + content: 'You are a helpful assistant.' + name: 'Assistant Config' + role: 'system' properties: content: anyOf: - - type: string + - type: 'string' - items: $ref: '#/components/schemas/ChatContentText' - type: array - description: System message content - example: You are a helpful assistant. + type: 'array' + description: 'System message content' + example: 'You are a helpful assistant.' name: - description: Optional name for the system message - example: Assistant Config - type: string + description: 'Optional name for the system message' + example: 'Assistant Config' + type: 'string' role: enum: - - system - type: string + - 'system' + type: 'string' required: - - role - - content - type: object + - 'role' + - 'content' + type: 'object' ChatTokenLogprob: - description: Token log probability information + description: 'Token log probability information' example: bytes: null logprob: -0.612345 @@ -5582,46 +5640,48 @@ components: token: ' Hello' properties: bytes: - description: UTF-8 bytes of the token + description: 'UTF-8 bytes of the token' items: - type: integer - nullable: true - type: array + type: 'integer' + type: + - 'array' + - 'null' logprob: - description: Log probability of the token - format: double - type: number + description: 'Log probability of the token' + format: 'double' + type: 'number' token: - description: The token - type: string + description: 'The token' + type: 'string' top_logprobs: - description: Top alternative tokens with probabilities + description: 'Top alternative tokens with probabilities' items: properties: bytes: items: - type: integer - nullable: true - type: array + type: 'integer' + type: + - 'array' + - 'null' logprob: - format: double - type: number + format: 'double' + type: 'number' token: - type: string + type: 'string' required: - - token - - logprob - - bytes - type: object - type: array - required: - - token - - logprob - - bytes - - top_logprobs - type: object + - 'token' + - 'logprob' + - 'bytes' + type: 'object' + type: 'array' + required: + - 'token' + - 'logprob' + - 'bytes' + - 'top_logprobs' + type: 'object' ChatTokenLogprobs: - description: Log probabilities for the completion + description: 'Log probabilities for the completion' example: content: - bytes: null @@ -5629,101 +5689,104 @@ components: token: ' Hello' top_logprobs: [] refusal: null - nullable: true properties: content: - description: Log probabilities for content tokens + description: 'Log probabilities for content tokens' items: $ref: '#/components/schemas/ChatTokenLogprob' - nullable: true - type: array + type: + - 'array' + - 'null' refusal: - description: Log probabilities for refusal tokens + description: 'Log probabilities for refusal tokens' items: $ref: '#/components/schemas/ChatTokenLogprob' - nullable: true - type: array - required: - - content - type: object + type: + - 'array' + - 'null' + required: + - 'content' + type: + - 'object' + - 'null' ChatToolCall: - description: Tool call made by the assistant + description: 'Tool call made by the assistant' example: function: arguments: '{"location": "Boston, MA"}' - name: get_current_weather - id: call_abc123 - type: function + name: 'get_current_weather' + id: 'call_abc123' + type: 'function' properties: function: properties: arguments: - description: Function arguments as JSON string - type: string + description: 'Function arguments as JSON string' + type: 'string' name: - description: Function name to call - type: string + description: 'Function name to call' + type: 'string' required: - - name - - arguments - type: object + - 'name' + - 'arguments' + type: 'object' id: - description: Tool call identifier - type: string + description: 'Tool call identifier' + type: 'string' type: enum: - - function - type: string + - 'function' + type: 'string' required: - - id - - type - - function - type: object + - 'id' + - 'type' + - 'function' + type: 'object' ChatToolChoice: anyOf: - enum: - - none - type: string + - 'none' + type: 'string' - enum: - - auto - type: string + - 'auto' + type: 'string' - enum: - - required - type: string + - 'required' + type: 'string' - $ref: '#/components/schemas/ChatNamedToolChoice' - $ref: '#/components/schemas/ChatServerToolChoice' - description: Tool choice configuration - example: auto + description: 'Tool choice configuration' + example: 'auto' ChatToolMessage: - description: Tool response message + description: 'Tool response message' example: - content: The weather in San Francisco is 72°F and sunny. - role: tool - tool_call_id: call_abc123 + content: 'The weather in San Francisco is 72°F and sunny.' + role: 'tool' + tool_call_id: 'call_abc123' properties: content: anyOf: - - type: string + - type: 'string' - items: $ref: '#/components/schemas/ChatContentItems' - type: array - description: Tool response content - example: The weather in San Francisco is 72°F and sunny. + type: 'array' + description: 'Tool response content' + example: 'The weather in San Francisco is 72°F and sunny.' role: enum: - - tool - type: string + - 'tool' + type: 'string' tool_call_id: - description: ID of the assistant message tool call this message responds to - example: call_abc123 - type: string - required: - - role - - content - - tool_call_id - type: object + description: 'ID of the assistant message tool call this message responds to' + example: 'call_abc123' + type: 'string' + required: + - 'role' + - 'content' + - 'tool_call_id' + type: 'object' ChatUsage: - description: Token usage statistics + description: 'Token usage statistics' example: completion_tokens: 15 completion_tokens_details: @@ -5743,552 +5806,557 @@ components: total_tokens: 25 properties: completion_tokens: - description: Number of tokens in the completion - type: integer + description: 'Number of tokens in the completion' + type: 'integer' completion_tokens_details: - description: Detailed completion token usage - nullable: true + description: 'Detailed completion token usage' properties: accepted_prediction_tokens: - description: Accepted prediction tokens - nullable: true - type: integer + description: 'Accepted prediction tokens' + type: + - 'integer' + - 'null' audio_tokens: - description: Tokens used for audio output - nullable: true - type: integer + description: 'Tokens used for audio output' + type: + - 'integer' + - 'null' reasoning_tokens: - description: Tokens used for reasoning - nullable: true - type: integer + description: 'Tokens used for reasoning' + type: + - 'integer' + - 'null' rejected_prediction_tokens: - description: Rejected prediction tokens - nullable: true - type: integer - type: object + description: 'Rejected prediction tokens' + type: + - 'integer' + - 'null' + type: + - 'object' + - 'null' cost: - description: Cost of the completion - format: double - nullable: true - type: number + description: 'Cost of the completion' + format: 'double' + type: + - 'number' + - 'null' cost_details: $ref: '#/components/schemas/CostDetails' is_byok: - description: Whether a request was made using a Bring Your Own Key configuration - type: boolean + description: 'Whether a request was made using a Bring Your Own Key configuration' + type: 'boolean' prompt_tokens: - description: Number of tokens in the prompt - type: integer + description: 'Number of tokens in the prompt' + type: 'integer' prompt_tokens_details: - description: Detailed prompt token usage - nullable: true + description: 'Detailed prompt token usage' properties: audio_tokens: - description: Audio input tokens - type: integer + description: 'Audio input tokens' + type: 'integer' cache_write_tokens: - description: Tokens written to cache. Only returned for models with explicit caching and cache write pricing. - type: integer + description: 'Tokens written to cache. Only returned for models with explicit caching and cache write pricing.' + type: 'integer' cached_tokens: - description: Cached prompt tokens - type: integer + description: 'Cached prompt tokens' + type: 'integer' video_tokens: - description: Video input tokens - type: integer - type: object + description: 'Video input tokens' + type: 'integer' + type: + - 'object' + - 'null' server_tool_use_details: $ref: '#/components/schemas/ServerToolUseDetails' total_tokens: - description: Total number of tokens - type: integer + description: 'Total number of tokens' + type: 'integer' required: - - completion_tokens - - prompt_tokens - - total_tokens - type: object + - 'completion_tokens' + - 'prompt_tokens' + - 'total_tokens' + type: 'object' ChatUserMessage: - description: User message + description: 'User message' example: - content: What is the capital of France? - role: user + content: 'What is the capital of France?' + role: 'user' properties: content: anyOf: - - type: string + - type: 'string' - items: $ref: '#/components/schemas/ChatContentItems' - type: array - description: User message content - example: What is the capital of France? + type: 'array' + description: 'User message content' + example: 'What is the capital of France?' name: - description: Optional name for the user - example: User - type: string + description: 'Optional name for the user' + example: 'User' + type: 'string' role: enum: - - user - type: string + - 'user' + type: 'string' required: - - role - - content - type: object + - 'role' + - 'content' + type: 'object' ChatWebSearchShorthand: - description: Web search tool using OpenAI Responses API syntax. Automatically converted to openrouter:web_search. + description: 'Web search tool using OpenAI Responses API syntax. Automatically converted to openrouter:web_search.' example: - type: web_search_preview + type: 'web_search_preview' properties: allowed_domains: - description: >- - Limit search results to these domains. Supported by Exa, Firecrawl, Parallel, Perplexity, and most native providers (Anthropic, OpenAI, xAI). Cannot be used with excluded_domains. + description: 'Limit search results to these domains. Supported by Exa, Firecrawl, Parallel, Perplexity, and most native providers (Anthropic, OpenAI, xAI). Cannot be used with excluded_domains.' items: - type: string - type: array + type: 'string' + type: 'array' engine: $ref: '#/components/schemas/WebSearchEngineEnum' excluded_domains: - description: >- - Exclude search results from these domains. Supported by Exa, Firecrawl, Parallel, Perplexity, Anthropic, and xAI. Not supported with OpenAI (silently ignored). Cannot be used with allowed_domains. + description: 'Exclude search results from these domains. Supported by Exa, Firecrawl, Parallel, Perplexity, Anthropic, and xAI. Not supported with OpenAI (silently ignored). Cannot be used with allowed_domains.' items: - type: string - type: array + type: 'string' + type: 'array' max_characters: - description: >- - Exact maximum number of characters of content per search result. Applies to the Exa, Parallel, and Perplexity engines; ignored with native provider search and Firecrawl. For Exa, caps highlight content per result. For Parallel, caps excerpt content per result (default 1,500 when omitted). For Perplexity, maps to the native `max_tokens_per_page` parameter (converted from characters to tokens) and trims the response to the exact character cap. When both `max_characters` and `search_context_size` are set, `max_characters` takes precedence. When omitted, falls back to `search_context_size` mapping (Exa) or engine defaults (Parallel, Perplexity). + description: 'Exact maximum number of characters of content per search result. Applies to the Exa, Parallel, and Perplexity engines; ignored with native provider search and Firecrawl. For Exa, caps highlight content per result. For Parallel, caps excerpt content per result (default 1,500 when omitted). For Perplexity, maps to the native `max_tokens_per_page` parameter (converted from characters to tokens) and trims the response to the exact character cap. When both `max_characters` and `search_context_size` are set, `max_characters` takes precedence. When omitted, falls back to `search_context_size` mapping (Exa) or engine defaults (Parallel, Perplexity).' example: 2000 - type: integer + type: 'integer' max_results: - description: >- - Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped. + description: 'Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped.' example: 5 - type: integer + type: 'integer' max_total_results: - description: >- - Maximum total number of search results across all search calls in a single request. Once this limit is reached, the tool will stop returning new results. Useful for controlling cost and context size in agentic loops. Defaults to 50 when not specified. + description: 'Maximum total number of search results across all search calls in a single request. Once this limit is reached, the tool will stop returning new results. Useful for controlling cost and context size in agentic loops. Defaults to 50 when not specified.' example: 50 - type: integer + type: 'integer' parameters: $ref: '#/components/schemas/WebSearchConfig' search_context_size: $ref: '#/components/schemas/SearchQualityLevel' type: enum: - - web_search - - web_search_preview - - web_search_preview_2025_03_11 - - web_search_2025_08_26 - type: string + - 'web_search' + - 'web_search_preview' + - 'web_search_preview_2025_03_11' + - 'web_search_2025_08_26' + type: 'string' x-speakeasy-unknown-values: allow user_location: $ref: '#/components/schemas/WebSearchUserLocationServerTool' required: - - type - type: object + - 'type' + type: 'object' CodeInterpreterCallItem: - description: A code interpreter execution call with outputs + description: 'A code interpreter execution call with outputs' example: - code: print("Hello, World!") - container_id: container-xyz789 - id: code-abc123 + code: 'print("Hello, World!")' + container_id: 'container-xyz789' + id: 'code-abc123' outputs: - - logs: Hello, World! - type: logs - status: completed - type: code_interpreter_call + - logs: 'Hello, World!' + type: 'logs' + status: 'completed' + type: 'code_interpreter_call' properties: code: - nullable: true - type: string + type: + - 'string' + - 'null' container_id: - type: string + type: 'string' id: - type: string + type: 'string' outputs: items: anyOf: - properties: type: enum: - - image - type: string + - 'image' + type: 'string' url: - type: string + type: 'string' required: - - type - - url - type: object + - 'type' + - 'url' + type: 'object' - properties: logs: - type: string + type: 'string' type: enum: - - logs - type: string + - 'logs' + type: 'string' required: - - type - - logs - type: object - nullable: true - type: array + - 'type' + - 'logs' + type: 'object' + type: + - 'array' + - 'null' status: $ref: '#/components/schemas/ToolCallStatus' type: enum: - - code_interpreter_call - type: string + - 'code_interpreter_call' + type: 'string' required: - - type - - id - - code - - outputs - - status - - container_id - type: object + - 'type' + - 'id' + - 'code' + - 'outputs' + - 'status' + - 'container_id' + type: 'object' CodeInterpreterServerTool: - description: Code interpreter tool configuration + description: 'Code interpreter tool configuration' example: - container: auto - type: code_interpreter + container: 'auto' + type: 'code_interpreter' properties: container: anyOf: - - type: string + - type: 'string' - properties: file_ids: items: - type: string - type: array + type: 'string' + type: 'array' memory_limit: enum: - - 1g - - 4g - - 16g - - 64g + - '1g' + - '4g' + - '16g' + - '64g' - null - nullable: true - type: string + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow type: enum: - - auto - type: string + - 'auto' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' type: enum: - - code_interpreter - type: string + - 'code_interpreter' + type: 'string' required: - - type - - container - type: object + - 'type' + - 'container' + type: 'object' CodexLocalShellTool: - description: Local shell tool configuration + description: 'Local shell tool configuration' example: - type: local_shell + type: 'local_shell' properties: type: enum: - - local_shell - type: string + - 'local_shell' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' CompactionItem: - additionalProperties: - nullable: true - description: A context compaction marker with encrypted summary + additionalProperties: {} + description: 'A context compaction marker with encrypted summary' example: - encrypted_content: enc_abc123... - type: compaction + encrypted_content: 'enc_abc123...' + type: 'compaction' properties: encrypted_content: - type: string + type: 'string' id: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - compaction - type: string + - 'compaction' + type: 'string' required: - - type - - encrypted_content - type: object + - 'type' + - 'encrypted_content' + type: 'object' CompletedEvent: - description: Event emitted when a response has completed successfully + description: 'Event emitted when a response has completed successfully' example: response: + completed_at: null created_at: 1704067200 error: null - id: resp-abc123 + frequency_penalty: null + id: 'resp-abc123' incomplete_details: null instructions: null max_output_tokens: null metadata: null - model: gpt-4 - object: response + model: 'gpt-4' + object: 'response' output: - content: - annotations: [] - text: Hello! How can I help you? - type: output_text - id: item-1 - role: assistant - status: completed - type: message + text: 'Hello! How can I help you?' + type: 'output_text' + id: 'item-1' + role: 'assistant' + status: 'completed' + type: 'message' parallel_tool_calls: true - status: completed + presence_penalty: null + status: 'completed' temperature: null - tool_choice: auto + tool_choice: 'auto' tools: [] top_p: null sequence_number: 10 - type: response.completed + type: 'response.completed' properties: response: $ref: '#/components/schemas/BaseResponsesResult' sequence_number: - type: integer + type: 'integer' type: enum: - - response.completed - type: string + - 'response.completed' + type: 'string' required: - - type - - response - - sequence_number - type: object + - 'type' + - 'response' + - 'sequence_number' + type: 'object' CompoundFilter: - description: A compound filter that combines multiple comparison or compound filters + description: 'A compound filter that combines multiple comparison or compound filters' example: filters: - - key: author - type: eq - value: Alice - type: and + - key: 'author' + type: 'eq' + value: 'Alice' + type: 'and' properties: filters: items: - additionalProperties: - nullable: true - type: object - type: array + additionalProperties: {} + type: 'object' + type: 'array' type: enum: - - and - - or - type: string + - 'and' + - 'or' + type: 'string' x-speakeasy-unknown-values: allow required: - - type - - filters - type: object + - 'type' + - 'filters' + type: 'object' ComputerUseServerTool: - description: Computer use preview tool configuration + description: 'Computer use preview tool configuration' example: display_height: 768 display_width: 1024 - environment: linux - type: computer_use_preview + environment: 'linux' + type: 'computer_use_preview' properties: display_height: - type: integer + type: 'integer' display_width: - type: integer + type: 'integer' environment: enum: - - windows - - mac - - linux - - ubuntu - - browser - type: string + - 'windows' + - 'mac' + - 'linux' + - 'ubuntu' + - 'browser' + type: 'string' x-speakeasy-unknown-values: allow type: enum: - - computer_use_preview - type: string + - 'computer_use_preview' + type: 'string' required: - - type - - display_height - - display_width - - environment - type: object + - 'type' + - 'display_height' + - 'display_width' + - 'environment' + type: 'object' ConflictResponse: - description: Conflict - Resource conflict or concurrent modification + description: 'Conflict - Resource conflict or concurrent modification' example: error: code: 409 - message: Resource conflict. Please try again later. + message: 'Resource conflict. Please try again later.' properties: error: $ref: '#/components/schemas/ConflictResponseErrorData' openrouter_metadata: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' user_id: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - error - type: object + - 'error' + type: 'object' ConflictResponseErrorData: - description: Error data for ConflictResponse + description: 'Error data for ConflictResponse' example: code: 409 - message: Resource conflict. Please try again later. + message: 'Resource conflict. Please try again later.' properties: code: - type: integer + type: 'integer' message: - type: string + type: 'string' metadata: - additionalProperties: - nullable: true - nullable: true - type: object - required: - - code - - message - type: object + additionalProperties: {} + type: + - 'object' + - 'null' + required: + - 'code' + - 'message' + type: 'object' ContainerAutoEnvironment: - description: An OpenRouter-managed, auto-provisioned ephemeral container. + description: 'An OpenRouter-managed, auto-provisioned ephemeral container.' example: - type: container_auto + type: 'container_auto' properties: type: enum: - - container_auto - type: string + - 'container_auto' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' ContainerReferenceEnvironment: - description: Reference to a previously created container to reuse. + description: 'Reference to a previously created container to reuse.' example: - container_id: cntr_abc123 - type: container_reference + container_id: 'cntr_abc123' + type: 'container_reference' properties: container_id: - description: Identifier of an existing container to reuse (max 20 characters). - example: cntr_abc123 + description: 'Identifier of an existing container to reuse (max 20 characters).' + example: 'cntr_abc123' maxLength: 20 minLength: 1 - pattern: ^[\w-]+$ - type: string + pattern: '^[\w-]+$' + type: 'string' type: enum: - - container_reference - type: string + - 'container_reference' + type: 'string' required: - - type - - container_id - type: object + - 'type' + - 'container_id' + type: 'object' ContentFilterAction: - description: Action taken when the pattern matches + description: 'Action taken when the pattern matches' enum: - - redact - - block - example: block - type: string + - 'redact' + - 'block' + example: 'block' + type: 'string' x-speakeasy-unknown-values: allow ContentFilterBuiltinAction: - description: Action taken when the builtin filter triggers + description: 'Action taken when the builtin filter triggers' enum: - - redact - - block - - flag - example: block - type: string + - 'redact' + - 'block' + - 'flag' + example: 'block' + type: 'string' x-speakeasy-unknown-values: allow ContentFilterBuiltinEntry: - description: >- - A builtin content filter entry. Builtin filters include PII detectors and the regex-based prompt injection detector. + description: 'A builtin content filter entry. Builtin filters include PII detectors and the regex-based prompt injection detector.' example: - action: redact + action: 'redact' label: '[EMAIL]' - slug: email + slug: 'email' properties: action: $ref: '#/components/schemas/ContentFilterBuiltinAction' label: - description: >- - Read-only, system-assigned redaction placeholder derived from the slug (e.g. "[EMAIL]", "[PHONE]"). Not settable by the caller. + description: 'Read-only, system-assigned redaction placeholder derived from the slug (e.g. "[EMAIL]", "[PHONE]"). Not settable by the caller.' example: '[EMAIL]' maxLength: 100 - type: string + type: 'string' scan_scope: $ref: '#/components/schemas/PromptInjectionScanScope' slug: $ref: '#/components/schemas/ContentFilterBuiltinSlug' required: - - slug - - action - type: object + - 'slug' + - 'action' + type: 'object' ContentFilterBuiltinEntryInput: - description: >- - A builtin content filter entry for create/update requests. Labels are system-assigned and cannot be set by the caller. + description: 'A builtin content filter entry for create/update requests. Labels are system-assigned and cannot be set by the caller.' example: - action: redact - slug: email + action: 'redact' + slug: 'email' properties: action: $ref: '#/components/schemas/ContentFilterBuiltinAction' label: deprecated: true - description: >- - Deprecated: labels are system-assigned and cannot be set by the caller. Accepted for backward compatibility but silently ignored. + description: 'Deprecated: labels are system-assigned and cannot be set by the caller. Accepted for backward compatibility but silently ignored.' maxLength: 100 - type: string + type: 'string' scan_scope: $ref: '#/components/schemas/PromptInjectionScanScope' slug: $ref: '#/components/schemas/ContentFilterBuiltinSlug' required: - - slug - - action - type: object + - 'slug' + - 'action' + type: 'object' ContentFilterBuiltinSlug: - description: The builtin filter identifier + description: 'The builtin filter identifier' enum: - - email - - phone - - ssn - - credit-card - - ip-address - - person-name - - address - - regex-prompt-injection - example: regex-prompt-injection - type: string + - 'email' + - 'phone' + - 'ssn' + - 'credit-card' + - 'ip-address' + - 'person-name' + - 'address' + - 'regex-prompt-injection' + example: 'regex-prompt-injection' + type: 'string' x-speakeasy-unknown-values: allow ContentFilterEntry: - description: A custom regex content filter that scans request messages for matching patterns. + description: 'A custom regex content filter that scans request messages for matching patterns.' example: - action: redact + action: 'redact' label: '[API_KEY]' - pattern: \b(sk-[a-zA-Z0-9]{48})\b + pattern: '\b(sk-[a-zA-Z0-9]{48})\b' properties: action: $ref: '#/components/schemas/ContentFilterAction' label: - description: Optional label used in redaction placeholders or error messages + description: 'Optional label used in redaction placeholders or error messages' example: '[API_KEY]' maxLength: 100 - nullable: true - type: string + type: + - 'string' + - 'null' pattern: - description: A regex pattern to match against request content - example: \b(sk-[a-zA-Z0-9]{48})\b + description: 'A regex pattern to match against request content' + example: '\b(sk-[a-zA-Z0-9]{48})\b' minLength: 1 - type: string + type: 'string' required: - - pattern - - action - type: object + - 'pattern' + - 'action' + type: 'object' ContentPartAddedEvent: allOf: - $ref: '#/components/schemas/BaseContentPartAddedEvent' @@ -6298,39 +6366,39 @@ components: - $ref: '#/components/schemas/ResponseOutputText' - $ref: '#/components/schemas/ReasoningTextContent' - $ref: '#/components/schemas/OpenAIResponsesRefusalContent' - type: object - description: Event emitted when a new content part is added to an output item + type: 'object' + description: 'Event emitted when a new content part is added to an output item' example: content_index: 0 - item_id: item-1 + item_id: 'item-1' output_index: 0 part: annotations: [] text: '' - type: output_text + type: 'output_text' sequence_number: 3 - type: response.content_part.added + type: 'response.content_part.added' ContentPartAudio: example: audio_url: - url: https://example.com/audio.mp3 - type: audio_url + url: 'https://example.com/audio.mp3' + type: 'audio_url' properties: audio_url: properties: url: - type: string + type: 'string' required: - - url - type: object + - 'url' + type: 'object' type: enum: - - audio_url - type: string + - 'audio_url' + type: 'string' required: - - type - - audio_url - type: object + - 'type' + - 'audio_url' + type: 'object' ContentPartDoneEvent: allOf: - $ref: '#/components/schemas/BaseContentPartDoneEvent' @@ -6340,231 +6408,236 @@ components: - $ref: '#/components/schemas/ResponseOutputText' - $ref: '#/components/schemas/ReasoningTextContent' - $ref: '#/components/schemas/OpenAIResponsesRefusalContent' - type: object - description: Event emitted when a content part is complete + type: 'object' + description: 'Event emitted when a content part is complete' example: content_index: 0 - item_id: item-1 + item_id: 'item-1' output_index: 0 part: annotations: [] - text: Hello! How can I help you? - type: output_text + text: 'Hello! How can I help you?' + type: 'output_text' sequence_number: 7 - type: response.content_part.done + type: 'response.content_part.done' ContentPartImage: example: image_url: - url: https://example.com/image.png - type: image_url + url: 'https://example.com/image.png' + type: 'image_url' properties: image_url: properties: url: - type: string + type: 'string' required: - - url - type: object + - 'url' + type: 'object' type: enum: - - image_url - type: string + - 'image_url' + type: 'string' required: - - type - - image_url - type: object + - 'type' + - 'image_url' + type: 'object' ContentPartInputAudio: example: input_audio: - data: data:audio/wav;base64,UklGRiQAAABXQVZFZm10IBAAAAA... - format: wav - type: input_audio + data: 'data:audio/wav;base64,UklGRiQAAABXQVZFZm10IBAAAAA...' + format: 'wav' + type: 'input_audio' properties: input_audio: $ref: '#/components/schemas/MultimodalMedia' type: enum: - - input_audio - type: string + - 'input_audio' + type: 'string' required: - - type - - input_audio - type: object + - 'type' + - 'input_audio' + type: 'object' ContentPartInputFile: example: input_file: - data: data:application/pdf;base64,JVBERi0xLjQKJeLjz9MKMyAw... - format: pdf - type: input_file + data: 'data:application/pdf;base64,JVBERi0xLjQKJeLjz9MKMyAw...' + format: 'pdf' + type: 'input_file' properties: input_file: $ref: '#/components/schemas/MultimodalMedia' type: enum: - - input_file - type: string + - 'input_file' + type: 'string' required: - - type - - input_file - type: object + - 'type' + - 'input_file' + type: 'object' ContentPartInputVideo: example: input_video: - data: data:video/mp4;base64,AAAAGGZ0eXBtcDQyAAAAAGlzb21tcDQy... - format: mp4 - type: input_video + data: 'data:video/mp4;base64,AAAAGGZ0eXBtcDQyAAAAAGlzb21tcDQy...' + format: 'mp4' + type: 'input_video' properties: input_video: $ref: '#/components/schemas/MultimodalMedia' type: enum: - - input_video - type: string + - 'input_video' + type: 'string' required: - - type - - input_video - type: object + - 'type' + - 'input_video' + type: 'object' ContentPartVideo: example: - type: video_url + type: 'video_url' video_url: - url: https://example.com/clip.mp4 + url: 'https://example.com/clip.mp4' properties: type: enum: - - video_url - type: string + - 'video_url' + type: 'string' video_url: properties: url: - type: string + type: 'string' required: - - url - type: object + - 'url' + type: 'object' required: - - type - - video_url - type: object + - 'type' + - 'video_url' + type: 'object' ContextCompactionItem: - additionalProperties: - nullable: true - description: A context compaction marker with an optional encrypted summary + additionalProperties: {} + description: 'A context compaction marker with an optional encrypted summary' example: - encrypted_content: enc_abc123... - type: context_compaction + encrypted_content: 'enc_abc123...' + type: 'context_compaction' properties: encrypted_content: - nullable: true - type: string + type: + - 'string' + - 'null' id: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - context_compaction - type: string + - 'context_compaction' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' ContextCompressionEngine: - description: The compression engine to use. Defaults to "middle-out". + description: 'The compression engine to use. Defaults to "middle-out".' enum: - - middle-out - example: middle-out - type: string + - 'middle-out' + example: 'middle-out' + type: 'string' ContextCompressionPlugin: example: enabled: true - engine: middle-out - id: context-compression + engine: 'middle-out' + id: 'context-compression' properties: enabled: - description: Set to false to disable the context-compression plugin for this request. Defaults to true. - type: boolean + description: 'Set to false to disable the context-compression plugin for this request. Defaults to true.' + type: 'boolean' engine: $ref: '#/components/schemas/ContextCompressionEngine' id: enum: - - context-compression - type: string + - 'context-compression' + type: 'string' required: - - id - type: object + - 'id' + type: 'object' CostDetails: - description: Breakdown of upstream inference costs + description: 'Breakdown of upstream inference costs' example: upstream_inference_completions_cost: 0.0004 upstream_inference_cost: null upstream_inference_prompt_cost: 0.0008 - nullable: true properties: upstream_inference_completions_cost: - format: double - type: number + format: 'double' + type: 'number' upstream_inference_cost: - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' upstream_inference_prompt_cost: - format: double - type: number - required: - - upstream_inference_prompt_cost - - upstream_inference_completions_cost - type: object + format: 'double' + type: 'number' + required: + - 'upstream_inference_prompt_cost' + - 'upstream_inference_completions_cost' + type: + - 'object' + - 'null' CreateBYOKKeyRequest: example: - key: sk-proj-abc123... - name: Production OpenAI Key - provider: openai + key: 'sk-proj-abc123...' + name: 'Production OpenAI Key' + provider: 'openai' properties: allowed_models: - description: Optional allowlist of model slugs this credential may be used for. `null` means no restriction. + description: 'Optional allowlist of model slugs this credential may be used for. `null` means no restriction.' example: null items: - type: string + type: 'string' maxItems: 100 - nullable: true - type: array + type: + - 'array' + - 'null' allowed_user_ids: - description: Optional allowlist of user IDs that may use this credential. `null` means no restriction. + description: 'Optional allowlist of user IDs that may use this credential. `null` means no restriction.' example: null items: - type: string + type: 'string' maxItems: 100 - nullable: true - type: array + type: + - 'array' + - 'null' disabled: - description: Whether this credential should be created in a disabled state. + description: 'Whether this credential should be created in a disabled state.' example: false - type: boolean + type: 'boolean' is_fallback: - description: >- - Whether this credential is treated as a fallback — used only after non-fallback keys for the same provider have been tried. + description: 'Whether this credential is treated as a fallback — used only after non-fallback keys for the same provider have been tried.' example: false - type: boolean + type: 'boolean' key: - description: The raw provider API key or credential. This value is encrypted at rest and never returned in API responses. - example: sk-proj-abc123... + description: 'The raw provider API key or credential. This value is encrypted at rest and never returned in API responses.' + example: 'sk-proj-abc123...' minLength: 1 - type: string + type: 'string' name: - description: Optional human-readable name for the credential. - example: Production OpenAI Key + description: 'Optional human-readable name for the credential.' + example: 'Production OpenAI Key' maxLength: 255 - nullable: true - type: string + type: + - 'string' + - 'null' provider: $ref: '#/components/schemas/BYOKProviderSlug' workspace_id: - description: Optional workspace ID. Defaults to the authenticated entity's default workspace. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - provider - - key - type: object + description: 'Optional workspace ID. Defaults to the authenticated entity''s default workspace.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'provider' + - 'key' + type: 'object' CreateBYOKKeyResponse: example: data: @@ -6573,69 +6646,72 @@ components: allowed_user_ids: null created_at: '2025-08-24T10:30:00Z' disabled: false - id: 11111111-2222-3333-4444-555555555555 + id: '11111111-2222-3333-4444-555555555555' is_fallback: false - label: sk-...AbCd - name: Production OpenAI Key - provider: openai + label: 'sk-...AbCd' + name: 'Production OpenAI Key' + provider: 'openai' sort_order: 0 - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: data: allOf: - $ref: '#/components/schemas/BYOKKey' - - description: The created BYOK credential. + - description: 'The created BYOK credential.' required: - - data - type: object + - 'data' + type: 'object' CreatedEvent: - description: Event emitted when a response is created + description: 'Event emitted when a response is created' example: response: + completed_at: null created_at: 1704067200 error: null - id: resp-abc123 + frequency_penalty: null + id: 'resp-abc123' incomplete_details: null instructions: null max_output_tokens: null metadata: null - model: gpt-4 - object: response + model: 'gpt-4' + object: 'response' output: [] parallel_tool_calls: true - status: in_progress + presence_penalty: null + status: 'in_progress' temperature: null - tool_choice: auto + tool_choice: 'auto' tools: [] top_p: null sequence_number: 0 - type: response.created + type: 'response.created' properties: response: $ref: '#/components/schemas/BaseResponsesResult' sequence_number: - type: integer + type: 'integer' type: enum: - - response.created - type: string + - 'response.created' + type: 'string' required: - - type - - response - - sequence_number - type: object + - 'type' + - 'response' + - 'sequence_number' + type: 'object' CreateGuardrailRequest: example: allowed_models: null allowed_providers: - - openai - - anthropic - - deepseek + - 'openai' + - 'anthropic' + - 'deepseek' content_filter_builtins: - - action: block - slug: regex-prompt-injection + - action: 'block' + slug: 'regex-prompt-injection' content_filters: null - description: A guardrail for limiting API usage + description: 'A guardrail for limiting API usage' enforce_zdr_anthropic: true enforce_zdr_google: false enforce_zdr_openai: true @@ -6644,654 +6720,659 @@ components: ignored_models: null ignored_providers: null limit_usd: 50 - name: My New Guardrail - reset_interval: monthly + name: 'My New Guardrail' + reset_interval: 'monthly' properties: allowed_models: - description: Array of model identifiers (slug or canonical_slug accepted) + description: 'Array of model identifiers (slug or canonical_slug accepted)' example: - - openai/gpt-5.2 - - anthropic/claude-4.5-opus-20251124 - - deepseek/deepseek-r1-0528:free + - 'openai/gpt-5.2' + - 'anthropic/claude-4.5-opus-20251124' + - 'deepseek/deepseek-r1-0528:free' items: - type: string + type: 'string' minItems: 1 - nullable: true - type: array + type: + - 'array' + - 'null' allowed_providers: - description: List of allowed provider IDs + description: 'List of allowed provider IDs' example: - - openai - - anthropic - - deepseek + - 'openai' + - 'anthropic' + - 'deepseek' items: - type: string + type: 'string' minItems: 1 - nullable: true - type: array + type: + - 'array' + - 'null' content_filter_builtins: - description: >- - Builtin content filters to apply. The "flag" action is only supported for "regex-prompt-injection"; PII slugs (email, phone, ssn, credit-card, ip-address, person-name, address) accept "block" or "redact" only. + description: 'Builtin content filters to apply. The "flag" action is only supported for "regex-prompt-injection"; PII slugs (email, phone, ssn, credit-card, ip-address, person-name, address) accept "block" or "redact" only.' example: - - action: block - slug: regex-prompt-injection + - action: 'block' + slug: 'regex-prompt-injection' items: $ref: '#/components/schemas/ContentFilterBuiltinEntryInput' - nullable: true - type: array + type: + - 'array' + - 'null' content_filters: - description: Custom regex content filters to apply to request messages + description: 'Custom regex content filters to apply to request messages' example: - - action: redact + - action: 'redact' label: '[API_KEY]' - pattern: \b(sk-[a-zA-Z0-9]{48})\b + pattern: '\b(sk-[a-zA-Z0-9]{48})\b' items: $ref: '#/components/schemas/ContentFilterEntry' - nullable: true - type: array + type: + - 'array' + - 'null' description: - description: Description of the guardrail - example: A guardrail for limiting API usage + description: 'Description of the guardrail' + example: 'A guardrail for limiting API usage' maxLength: 1000 - nullable: true - type: string + type: + - 'string' + - 'null' enforce_zdr: deprecated: true - description: >- - Deprecated. Use enforce_zdr_anthropic, enforce_zdr_openai, enforce_zdr_google, enforce_zdr_xai, and enforce_zdr_other instead. When provided, its value is copied into any of those per-provider fields that are not explicitly specified on the request. + description: 'Deprecated. Use enforce_zdr_anthropic, enforce_zdr_openai, enforce_zdr_google, enforce_zdr_xai, and enforce_zdr_other instead. When provided, its value is copied into any of those per-provider fields that are not explicitly specified on the request.' example: false - nullable: true - type: boolean + type: + - 'boolean' + - 'null' enforce_zdr_anthropic: - description: Whether to enforce zero data retention for Anthropic models. Falls back to enforce_zdr when not provided. + description: 'Whether to enforce zero data retention for Anthropic models. Falls back to enforce_zdr when not provided.' example: false - nullable: true - type: boolean + type: + - 'boolean' + - 'null' enforce_zdr_google: - description: Whether to enforce zero data retention for Google models. Falls back to enforce_zdr when not provided. + description: 'Whether to enforce zero data retention for Google models. Falls back to enforce_zdr when not provided.' example: false - nullable: true - type: boolean + type: + - 'boolean' + - 'null' enforce_zdr_openai: - description: Whether to enforce zero data retention for OpenAI models. Falls back to enforce_zdr when not provided. + description: 'Whether to enforce zero data retention for OpenAI models. Falls back to enforce_zdr when not provided.' example: false - nullable: true - type: boolean + type: + - 'boolean' + - 'null' enforce_zdr_other: - description: >- - Whether to enforce zero data retention for models that are not from Anthropic, OpenAI, Google, or xAI. Falls back to enforce_zdr when not provided. + description: 'Whether to enforce zero data retention for models that are not from Anthropic, OpenAI, Google, or xAI. Falls back to enforce_zdr when not provided.' example: false - nullable: true - type: boolean + type: + - 'boolean' + - 'null' enforce_zdr_xai: - description: Whether to enforce zero data retention for xAI models. Falls back to enforce_zdr when not provided. + description: 'Whether to enforce zero data retention for xAI models. Falls back to enforce_zdr when not provided.' example: false - nullable: true - type: boolean + type: + - 'boolean' + - 'null' ignored_models: - description: Array of model identifiers to exclude from routing (slug or canonical_slug accepted) + description: 'Array of model identifiers to exclude from routing (slug or canonical_slug accepted)' example: - - openai/gpt-4o-mini + - 'openai/gpt-4o-mini' items: - type: string + type: 'string' minItems: 1 - nullable: true - type: array + type: + - 'array' + - 'null' ignored_providers: - description: List of provider IDs to exclude from routing + description: 'List of provider IDs to exclude from routing' example: - - azure + - 'azure' items: - type: string + type: 'string' minItems: 1 - nullable: true - type: array + type: + - 'array' + - 'null' limit_usd: - description: Spending limit in USD + description: 'Spending limit in USD' example: 50 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' name: - description: Name for the new guardrail - example: My New Guardrail + description: 'Name for the new guardrail' + example: 'My New Guardrail' maxLength: 200 minLength: 1 - type: string + type: 'string' reset_interval: $ref: '#/components/schemas/GuardrailInterval' workspace_id: - description: The workspace to create the guardrail in. Defaults to the default workspace if not provided. - example: 0df9e665-d932-5740-b2c7-b52af166bc11 - format: uuid - type: string + description: 'The workspace to create the guardrail in. Defaults to the default workspace if not provided.' + example: '0df9e665-d932-5740-b2c7-b52af166bc11' + format: 'uuid' + type: 'string' required: - - name - type: object + - 'name' + type: 'object' CreateGuardrailResponse: example: data: allowed_models: null allowed_providers: - - openai - - anthropic - - google + - 'openai' + - 'anthropic' + - 'google' content_filter_builtins: - - action: redact + - action: 'redact' label: '[EMAIL]' - slug: email + slug: 'email' content_filters: null created_at: '2025-08-24T10:30:00Z' - description: A guardrail for limiting API usage + description: 'A guardrail for limiting API usage' enforce_zdr: null enforce_zdr_anthropic: true enforce_zdr_google: false enforce_zdr_openai: true enforce_zdr_other: false enforce_zdr_xai: false - id: 550e8400-e29b-41d4-a716-446655440000 + id: '550e8400-e29b-41d4-a716-446655440000' ignored_models: null ignored_providers: null limit_usd: 50 - name: My New Guardrail - reset_interval: monthly + name: 'My New Guardrail' + reset_interval: 'monthly' updated_at: null - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' properties: data: allOf: - $ref: '#/components/schemas/Guardrail' - - description: The created guardrail + - description: 'The created guardrail' required: - - data - type: object + - 'data' + type: 'object' CreateObservabilityDestinationRequest: example: config: - baseUrl: https://us.cloud.langfuse.com - publicKey: pk-l...EfGh - secretKey: sk-l...AbCd - name: Production Langfuse - type: langfuse + baseUrl: 'https://us.cloud.langfuse.com' + publicKey: 'pk-l...EfGh' + secretKey: 'sk-l...AbCd' + name: 'Production Langfuse' + type: 'langfuse' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes whose traffic is forwarded. `null` or omitted means all keys. Must contain at least one hash if provided. + description: 'Optional allowlist of OpenRouter API key hashes whose traffic is forwarded. `null` or omitted means all keys. Must contain at least one hash if provided.' example: null items: - type: string + type: 'string' minItems: 1 - nullable: true - type: array + type: + - 'array' + - 'null' config: - additionalProperties: - nullable: true - description: Provider-specific configuration. The shape depends on `type` and is validated server-side. + additionalProperties: {} + description: 'Provider-specific configuration. The shape depends on `type` and is validated server-side.' example: - baseUrl: https://us.cloud.langfuse.com - publicKey: pk-l...EfGh - secretKey: sk-l...AbCd - type: object + baseUrl: 'https://us.cloud.langfuse.com' + publicKey: 'pk-l...EfGh' + secretKey: 'sk-l...AbCd' + type: 'object' enabled: default: true - description: Whether this destination should be enabled immediately. + description: 'Whether this destination should be enabled immediately.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfigNullable' name: - description: Human-readable name for the destination. - example: Production Langfuse - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: 'string' privacy_mode: default: false - description: When true, request/response bodies are not forwarded — only metadata. + description: 'When true, request/response bodies are not forwarded — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number - type: - description: The destination type. Only stable destination types are accepted. - enum: - - arize - - braintrust - - clickhouse - - datadog - - grafana - - langfuse - - langsmith - - newrelic - - opik - - otel-collector - - posthog - - ramp - - s3 - - sentry - - snowflake - - weave - - webhook - example: langfuse - type: string + format: 'double' + type: 'number' + type: + description: 'The destination type. Only stable destination types are accepted.' + enum: + - 'arize' + - 'braintrust' + - 'clickhouse' + - 'datadog' + - 'grafana' + - 'langfuse' + - 'langsmith' + - 'newrelic' + - 'opik' + - 'otel-collector' + - 'posthog' + - 'ramp' + - 's3' + - 'sentry' + - 'snowflake' + - 'weave' + - 'webhook' + example: 'langfuse' + type: 'string' x-speakeasy-unknown-values: allow workspace_id: - description: Optional workspace ID. Defaults to the authenticated entity's default workspace. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - type - - name - - config - type: object + description: 'Optional workspace ID. Defaults to the authenticated entity''s default workspace.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'type' + - 'name' + - 'config' + type: 'object' CreateObservabilityDestinationResponse: example: data: api_key_hashes: null config: - baseUrl: https://us.cloud.langfuse.com - publicKey: pk-l...EfGh - secretKey: sk-l...AbCd + baseUrl: 'https://us.cloud.langfuse.com' + publicKey: 'pk-l...EfGh' + secretKey: 'sk-l...AbCd' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Langfuse + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Langfuse' privacy_mode: false sampling_rate: 1 - type: langfuse + type: 'langfuse' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: data: allOf: - $ref: '#/components/schemas/ObservabilityDestination' - - description: The newly created observability destination. + - description: 'The newly created observability destination.' required: - - data - type: object + - 'data' + type: 'object' CreatePresetFromInferenceResponse: - description: Response containing the created preset with its designated version. + description: 'Response containing the created preset with its designated version.' example: data: created_at: '2026-04-20T10:00:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' description: null designated_version: config: - model: openai/gpt-4o + model: 'openai/gpt-4o' temperature: 0.7 created_at: '2026-04-20T10:00:00Z' - creator_id: user_2dHFtVWx2n56w6HkM0000000000 - id: 550e8400-e29b-41d4-a716-446655440000 - preset_id: 650e8400-e29b-41d4-a716-446655440001 - system_prompt: You are a helpful assistant. + creator_id: 'user_2dHFtVWx2n56w6HkM0000000000' + id: '550e8400-e29b-41d4-a716-446655440000' + preset_id: '650e8400-e29b-41d4-a716-446655440001' + system_prompt: 'You are a helpful assistant.' updated_at: '2026-04-20T10:00:00Z' version: 1 - designated_version_id: 550e8400-e29b-41d4-a716-446655440000 - id: 650e8400-e29b-41d4-a716-446655440001 - name: my-preset - slug: my-preset - status: active + designated_version_id: '550e8400-e29b-41d4-a716-446655440000' + id: '650e8400-e29b-41d4-a716-446655440001' + name: 'my-preset' + slug: 'my-preset' + status: 'active' status_updated_at: null updated_at: '2026-04-20T10:00:00Z' - workspace_id: 750e8400-e29b-41d4-a716-446655440002 + workspace_id: '750e8400-e29b-41d4-a716-446655440002' properties: data: $ref: '#/components/schemas/PresetWithDesignatedVersion' required: - - data - type: object + - 'data' + type: 'object' CreateWorkspaceRequest: example: - default_image_model: openai/dall-e-3 - default_provider_sort: price - default_text_model: openai/gpt-4o - description: Production environment workspace - name: Production - slug: production + default_image_model: 'openai/dall-e-3' + default_provider_sort: 'price' + default_text_model: 'openai/gpt-4o' + description: 'Production environment workspace' + name: 'Production' + slug: 'production' properties: default_image_model: - description: Default image model for this workspace - example: openai/dall-e-3 - nullable: true - type: string + description: 'Default image model for this workspace' + example: 'openai/dall-e-3' + type: + - 'string' + - 'null' default_provider_sort: - description: Default provider sort preference (price, throughput, latency, exacto) - example: price - nullable: true - type: string + description: 'Default provider sort preference (price, throughput, latency, exacto)' + example: 'price' + type: + - 'string' + - 'null' default_text_model: - description: Default text model for this workspace - example: openai/gpt-4o - nullable: true - type: string + description: 'Default text model for this workspace' + example: 'openai/gpt-4o' + type: + - 'string' + - 'null' description: - description: Description of the workspace - example: Production environment workspace + description: 'Description of the workspace' + example: 'Production environment workspace' maxLength: 500 - nullable: true - type: string + type: + - 'string' + - 'null' io_logging_api_key_ids: - description: Optional array of API key IDs to filter I/O logging + description: 'Optional array of API key IDs to filter I/O logging' example: null items: - type: integer - nullable: true - type: array + type: 'integer' + type: + - 'array' + - 'null' io_logging_sampling_rate: - description: Sampling rate for I/O logging (0.0001-1) + description: 'Sampling rate for I/O logging (0.0001-1)' example: 1 - format: double - type: number + format: 'double' + type: 'number' is_data_discount_logging_enabled: - description: Whether data discount logging is enabled + description: 'Whether data discount logging is enabled' example: true - type: boolean + type: 'boolean' is_observability_broadcast_enabled: - description: Whether broadcast is enabled + description: 'Whether broadcast is enabled' example: false - type: boolean + type: 'boolean' is_observability_io_logging_enabled: - description: Whether private logging is enabled + description: 'Whether private logging is enabled' example: false - type: boolean + type: 'boolean' name: - description: Name for the new workspace - example: Production + description: 'Name for the new workspace' + example: 'Production' maxLength: 100 minLength: 1 - type: string + type: 'string' slug: - description: URL-friendly slug (lowercase alphanumeric segments separated by single hyphens, no leading/trailing hyphens) - example: production + description: 'URL-friendly slug (lowercase alphanumeric segments separated by single hyphens, no leading/trailing hyphens)' + example: 'production' maxLength: 50 minLength: 1 - pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$ - type: string + pattern: '^[a-z0-9]+(?:-[a-z0-9]+)*$' + type: 'string' required: - - name - - slug - type: object + - 'name' + - 'slug' + type: 'object' CreateWorkspaceResponse: example: data: created_at: '2025-08-24T10:30:00Z' - created_by: user_abc123 - default_image_model: openai/dall-e-3 - default_provider_sort: price - default_text_model: openai/gpt-4o - description: Production environment workspace - id: 550e8400-e29b-41d4-a716-446655440000 + created_by: 'user_abc123' + default_image_model: 'openai/dall-e-3' + default_provider_sort: 'price' + default_text_model: 'openai/gpt-4o' + description: 'Production environment workspace' + id: '550e8400-e29b-41d4-a716-446655440000' io_logging_api_key_ids: null io_logging_sampling_rate: 1 is_data_discount_logging_enabled: true is_observability_broadcast_enabled: false is_observability_io_logging_enabled: false - name: Production - slug: production + name: 'Production' + slug: 'production' updated_at: null properties: data: allOf: - $ref: '#/components/schemas/Workspace' - - description: The created workspace + - description: 'The created workspace' required: - - data - type: object + - 'data' + type: 'object' CustomTool: - description: Custom tool configuration + description: 'Custom tool configuration' example: - name: my_tool - type: custom + name: 'my_tool' + type: 'custom' properties: description: - type: string + type: 'string' format: anyOf: - properties: type: enum: - - text - type: string + - 'text' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' - properties: definition: - type: string + type: 'string' syntax: enum: - - lark - - regex - type: string + - 'lark' + - 'regex' + type: 'string' x-speakeasy-unknown-values: allow type: enum: - - grammar - type: string + - 'grammar' + type: 'string' required: - - type - - definition - - syntax - type: object + - 'type' + - 'definition' + - 'syntax' + type: 'object' name: - type: string + type: 'string' type: enum: - - custom - type: string + - 'custom' + type: 'string' required: - - type - - name - type: object + - 'type' + - 'name' + type: 'object' CustomToolCallInputDeltaEvent: allOf: - $ref: '#/components/schemas/BaseCustomToolCallInputDeltaEvent' - properties: {} - type: object - description: >- - Event emitted when a custom tool call's freeform input is being streamed. Mirrors `response.function_call_arguments.delta` but for `custom` tools whose input is opaque text rather than JSON arguments. + type: 'object' + description: 'Event emitted when a custom tool call''s freeform input is being streamed. Mirrors `response.function_call_arguments.delta` but for `custom` tools whose input is opaque text rather than JSON arguments.' example: delta: '*** Begin Patch' - item_id: item-1 + item_id: 'item-1' output_index: 0 sequence_number: 4 - type: response.custom_tool_call_input.delta + type: 'response.custom_tool_call_input.delta' CustomToolCallInputDoneEvent: allOf: - $ref: '#/components/schemas/BaseCustomToolCallInputDoneEvent' - properties: {} - type: object - description: >- - Event emitted when a custom tool call's freeform input streaming is complete. Mirrors `response.function_call_arguments.done` but for `custom` tools. - example: - input: |- - *** Begin Patch - *** End Patch - item_id: item-1 + type: 'object' + description: 'Event emitted when a custom tool call''s freeform input streaming is complete. Mirrors `response.function_call_arguments.done` but for `custom` tools.' + example: + input: "*** Begin Patch\n*** End Patch" + item_id: 'item-1' output_index: 0 sequence_number: 6 - type: response.custom_tool_call_input.done + type: 'response.custom_tool_call_input.done' CustomToolCallItem: - description: >- - A call to a custom (freeform-grammar) tool created by the model — distinct from `function_call`. Used for tools like Codex CLI's `apply_patch` whose payload is opaque text rather than JSON arguments. + description: 'A call to a custom (freeform-grammar) tool created by the model — distinct from `function_call`. Used for tools like Codex CLI''s `apply_patch` whose payload is opaque text rather than JSON arguments.' example: - call_id: call-abc123 - id: ctc-abc123 - input: |- - *** Begin Patch - *** End Patch - name: apply_patch - type: custom_tool_call + call_id: 'call-abc123' + id: 'ctc-abc123' + input: "*** Begin Patch\n*** End Patch" + name: 'apply_patch' + type: 'custom_tool_call' properties: call_id: - type: string + type: 'string' id: - type: string + type: 'string' input: - type: string + type: 'string' name: - type: string + type: 'string' namespace: - description: Namespace qualifier for tools registered as part of a namespace tool group (e.g. an MCP server) - type: string + description: 'Namespace qualifier for tools registered as part of a namespace tool group (e.g. an MCP server)' + type: 'string' type: enum: - - custom_tool_call - type: string + - 'custom_tool_call' + type: 'string' required: - - type - - call_id - - name - - input - type: object + - 'type' + - 'call_id' + - 'name' + - 'input' + type: 'object' CustomToolCallOutputItem: allOf: - $ref: '#/components/schemas/OpenAIResponseCustomToolCallOutput' - properties: output: anyOf: - - type: string + - type: 'string' - items: oneOf: - $ref: '#/components/schemas/InputText' - allOf: - $ref: '#/components/schemas/InputImage' - properties: {} - type: object - description: Image input content item + type: 'object' + description: 'Image input content item' example: - detail: auto - image_url: https://example.com/image.jpg - type: input_image + detail: 'auto' + image_url: 'https://example.com/image.jpg' + type: 'input_image' - $ref: '#/components/schemas/InputFile' - type: array - type: object - description: >- - The output from a custom (freeform-grammar) tool call execution. Mirrors `function_call_output` but is matched to a `custom_tool_call` rather than a `function_call`. - example: - call_id: call-abc123 - id: ctco-abc123 - output: patch applied successfully - type: custom_tool_call_output + type: 'array' + type: 'object' + description: 'The output from a custom (freeform-grammar) tool call execution. Mirrors `function_call_output` but is matched to a `custom_tool_call` rather than a `function_call`.' + example: + call_id: 'call-abc123' + id: 'ctco-abc123' + output: 'patch applied successfully' + type: 'custom_tool_call_output' DABenchmarkEntry: - description: A single Design Arena benchmark entry for a specific arena+category + description: 'A single Design Arena benchmark entry for a specific arena+category' example: - arena: models - category: website + arena: 'models' + category: 'website' elo: 1385.2 rank: 5 win_rate: 62.5 properties: arena: - description: Arena type (e.g. models, builders, agents) - example: models - type: string + description: 'Arena type (e.g. models, builders, agents)' + example: 'models' + type: 'string' category: - description: Category within the arena (e.g. website, gamedev, uicomponent) - example: website - type: string + description: 'Category within the arena (e.g. website, gamedev, uicomponent)' + example: 'website' + type: 'string' elo: - description: ELO rating from head-to-head arena battles + description: 'ELO rating from head-to-head arena battles' example: 1385.2 - format: double - type: number + format: 'double' + type: 'number' rank: - description: Rank position within this arena+category among models available on OpenRouter (1 = highest ELO) + description: 'Rank position within this arena+category among models available on OpenRouter (1 = highest ELO)' example: 5 - type: integer + type: 'integer' win_rate: - description: Win rate percentage in arena battles + description: 'Win rate percentage in arena battles' example: 62.5 - format: double - type: number - required: - - arena - - category - - elo - - win_rate - - rank - type: object + format: 'double' + type: 'number' + required: + - 'arena' + - 'category' + - 'elo' + - 'win_rate' + - 'rank' + type: 'object' DatetimeServerTool: description: 'OpenRouter built-in server tool: returns the current date and time' example: parameters: - timezone: America/New_York - type: openrouter:datetime + timezone: 'America/New_York' + type: 'openrouter:datetime' properties: parameters: $ref: '#/components/schemas/DatetimeServerToolConfig' type: enum: - - openrouter:datetime - type: string + - 'openrouter:datetime' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' DatetimeServerToolConfig: - description: Configuration for the openrouter:datetime server tool + description: 'Configuration for the openrouter:datetime server tool' example: - timezone: America/New_York + timezone: 'America/New_York' properties: timezone: - description: IANA timezone name (e.g. "America/New_York"). Defaults to UTC. - example: America/New_York - type: string - type: object + description: 'IANA timezone name (e.g. "America/New_York"). Defaults to UTC.' + example: 'America/New_York' + type: 'string' + type: 'object' DebugEvent: - description: >- - Debug event emitted when debug.echo_upstream_body is true. Contains the transformed upstream request body or timing milestones. + description: 'Debug event emitted when debug.echo_upstream_body is true. Contains the transformed upstream request body or timing milestones.' example: debug: echo_upstream_body: messages: [] - model: anthropic/claude-sonnet-4 + model: 'anthropic/claude-sonnet-4' sequence_number: 1 - type: response.debug + type: 'response.debug' properties: debug: properties: echo_upstream_body: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' timings: properties: epoch_ms: - type: integer + type: 'integer' event: enum: - - adapter_request - - upstream_headers_received - - first_token_received - - upstream_body_ended - type: string + - 'adapter_request' + - 'upstream_headers_received' + - 'first_token_received' + - 'upstream_body_ended' + type: 'string' x-speakeasy-unknown-values: allow start_ms: - type: integer + type: 'integer' required: - - start_ms - - event - - epoch_ms - type: object - type: object + - 'start_ms' + - 'event' + - 'epoch_ms' + type: 'object' + type: 'object' sequence_number: - type: integer + type: 'integer' type: enum: - - response.debug - type: string + - 'response.debug' + type: 'string' required: - - type - - debug - - sequence_number - type: object + - 'type' + - 'debug' + - 'sequence_number' + type: 'object' DefaultParameters: additionalProperties: false - description: Default parameters for this model + description: 'Default parameters for this model' example: frequency_penalty: 0 presence_penalty: 0 @@ -7299,110 +7380,117 @@ components: temperature: 0.7 top_k: 0 top_p: 0.9 - nullable: true properties: frequency_penalty: - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' presence_penalty: - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' repetition_penalty: - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' temperature: - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' top_k: - nullable: true - type: integer + type: + - 'integer' + - 'null' top_p: - format: double - nullable: true - type: number - type: object + format: 'double' + type: + - 'number' + - 'null' + type: + - 'object' + - 'null' DeleteBYOKKeyResponse: example: deleted: true properties: deleted: const: true - description: Confirmation that the BYOK credential was deleted. + description: 'Confirmation that the BYOK credential was deleted.' example: true - type: boolean + type: 'boolean' required: - - deleted - type: object + - 'deleted' + type: 'object' DeleteGuardrailResponse: example: deleted: true properties: deleted: const: true - description: Confirmation that the guardrail was deleted + description: 'Confirmation that the guardrail was deleted' example: true - type: boolean + type: 'boolean' required: - - deleted - type: object + - 'deleted' + type: 'object' DeleteObservabilityDestinationResponse: example: deleted: true properties: deleted: const: true - description: Always `true` on success. - type: boolean + description: 'Always `true` on success.' + type: 'boolean' required: - - deleted - type: object + - 'deleted' + type: 'object' DeleteWorkspaceBudgetResponse: example: deleted: true properties: deleted: const: true - description: Confirmation that the budget was deleted (or did not exist) + description: 'Confirmation that the budget was deleted (or did not exist)' example: true - type: boolean + type: 'boolean' required: - - deleted - type: object + - 'deleted' + type: 'object' DeleteWorkspaceResponse: example: deleted: true properties: deleted: const: true - description: Confirmation that the workspace was deleted + description: 'Confirmation that the workspace was deleted' example: true - type: boolean + type: 'boolean' required: - - deleted - type: object + - 'deleted' + type: 'object' DeprecatedRoute: deprecated: true - description: >- - **DEPRECATED** Use providers.sort.partition instead. Backwards-compatible alias for providers.sort.partition. Accepts legacy values: "fallback" (maps to "model"), "sort" (maps to "none"). + description: '**DEPRECATED** Use providers.sort.partition instead. Backwards-compatible alias for providers.sort.partition. Accepts legacy values: "fallback" (maps to "model"), "sort" (maps to "none").' enum: - - fallback - - sort + - 'fallback' + - 'sort' - null - example: fallback - nullable: true - type: string + example: 'fallback' + type: + - 'string' + - 'null' x-fern-ignore: true - x-speakeasy-deprecation-message: Use providers.sort.partition instead. + x-speakeasy-deprecation-message: 'Use providers.sort.partition instead.' x-speakeasy-ignore: true x-speakeasy-unknown-values: allow EasyInputMessage: example: - content: What is the weather today? - role: user + content: 'What is the weather today?' + role: 'user' properties: content: anyOf: @@ -7412,125 +7500,125 @@ components: - allOf: - $ref: '#/components/schemas/InputImage' - properties: {} - type: object - description: Image input content item + type: 'object' + description: 'Image input content item' example: - detail: auto - image_url: https://example.com/image.jpg - type: input_image + detail: 'auto' + image_url: 'https://example.com/image.jpg' + type: 'input_image' - $ref: '#/components/schemas/InputFile' - $ref: '#/components/schemas/InputAudio' - $ref: '#/components/schemas/InputVideo' - type: array - - type: string - - nullable: true + type: 'array' + - type: 'string' + - type: 'null' phase: anyOf: - enum: - - commentary - type: string + - 'commentary' + type: 'string' - enum: - - final_answer - type: string - - nullable: true - description: >- - The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer` for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages. - example: final_answer + - 'final_answer' + type: 'string' + - type: 'null' + description: 'The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer` for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages.' + example: 'final_answer' role: anyOf: - enum: - - user - type: string + - 'user' + type: 'string' - enum: - - system - type: string + - 'system' + type: 'string' - enum: - - assistant - type: string + - 'assistant' + type: 'string' - enum: - - developer - type: string + - 'developer' + type: 'string' type: enum: - - message - type: string + - 'message' + type: 'string' required: - - role - type: object + - 'role' + type: 'object' EdgeNetworkTimeoutResponse: - description: Infrastructure Timeout - Provider request timed out at edge network + description: 'Infrastructure Timeout - Provider request timed out at edge network' example: error: code: 524 - message: Request timed out. Please try again later. + message: 'Request timed out. Please try again later.' properties: error: $ref: '#/components/schemas/EdgeNetworkTimeoutResponseErrorData' openrouter_metadata: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' user_id: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - error - type: object + - 'error' + type: 'object' EdgeNetworkTimeoutResponseErrorData: - description: Error data for EdgeNetworkTimeoutResponse + description: 'Error data for EdgeNetworkTimeoutResponse' example: code: 524 - message: Request timed out. Please try again later. + message: 'Request timed out. Please try again later.' properties: code: - type: integer + type: 'integer' message: - type: string + type: 'string' metadata: - additionalProperties: - nullable: true - nullable: true - type: object - required: - - code - - message - type: object + additionalProperties: {} + type: + - 'object' + - 'null' + required: + - 'code' + - 'message' + type: 'object' EndpointInfo: example: - model: openai/gpt-4o - provider: OpenAI + model: 'openai/gpt-4o' + provider: 'OpenAI' selected: true properties: model: - type: string + type: 'string' provider: - type: string + type: 'string' selected: - type: boolean + type: 'boolean' required: - - provider - - model - - selected - type: object + - 'provider' + - 'model' + - 'selected' + type: 'object' EndpointsMetadata: example: available: - - model: openai/gpt-4o - provider: OpenAI + - model: 'openai/gpt-4o' + provider: 'OpenAI' selected: true total: 3 properties: available: items: $ref: '#/components/schemas/EndpointInfo' - type: array + type: 'array' total: - type: integer + type: 'integer' required: - - total - - available - type: object + - 'total' + - 'available' + type: 'object' EndpointStatus: enum: - 0 @@ -7540,585 +7628,594 @@ components: - -5 - -10 example: 0 - type: integer + type: 'integer' x-speakeasy-unknown-values: allow EnumCapability: - description: A parameter that accepts one of a discrete set of string values. + description: 'A parameter that accepts one of a discrete set of string values.' example: - type: enum + type: 'enum' values: - - 1K - - 2K - - 4K + - '1K' + - '2K' + - '4K' properties: type: enum: - - enum - type: string + - 'enum' + type: 'string' values: items: - type: string - type: array + type: 'string' + type: 'array' required: - - type - - values - type: object + - 'type' + - 'values' + type: 'object' ErrorEvent: allOf: - $ref: '#/components/schemas/BaseErrorEvent' - properties: {} - type: object - description: Event emitted when an error occurs during streaming + type: 'object' + description: 'Event emitted when an error occurs during streaming' example: - code: rate_limit_exceeded - message: Rate limit exceeded. Please try again later. + code: 'rate_limit_exceeded' + message: 'Rate limit exceeded. Please try again later.' param: null sequence_number: 2 - type: error + type: 'error' FailedEvent: - description: Event emitted when a response has failed + description: 'Event emitted when a response has failed' example: response: + completed_at: null created_at: 1704067200 error: null - id: resp-abc123 + frequency_penalty: null + id: 'resp-abc123' incomplete_details: null instructions: null max_output_tokens: null metadata: null - model: gpt-4 - object: response + model: 'gpt-4' + object: 'response' output: [] parallel_tool_calls: true - status: failed + presence_penalty: null + status: 'failed' temperature: null - tool_choice: auto + tool_choice: 'auto' tools: [] top_p: null sequence_number: 3 - type: response.failed + type: 'response.failed' properties: response: $ref: '#/components/schemas/BaseResponsesResult' sequence_number: - type: integer + type: 'integer' type: enum: - - response.failed - type: string + - 'response.failed' + type: 'string' required: - - type - - response - - sequence_number - type: object + - 'type' + - 'response' + - 'sequence_number' + type: 'object' FileCitation: example: - file_id: file-abc123 - filename: research_paper.pdf + file_id: 'file-abc123' + filename: 'research_paper.pdf' index: 0 - type: file_citation + type: 'file_citation' properties: file_id: - type: string + type: 'string' filename: - type: string + type: 'string' index: - type: integer + type: 'integer' type: enum: - - file_citation - type: string + - 'file_citation' + type: 'string' required: - - type - - file_id - - filename - - index - type: object + - 'type' + - 'file_id' + - 'filename' + - 'index' + type: 'object' FileDeleteResponse: - description: Confirmation that a file was deleted. + description: 'Confirmation that a file was deleted.' example: - id: file_011CNha8iCJcU1wXNR6q4V8w - type: file_deleted + id: 'file_011CNha8iCJcU1wXNR6q4V8w' + type: 'file_deleted' properties: id: - type: string + type: 'string' type: enum: - - file_deleted - type: string + - 'file_deleted' + type: 'string' required: - - id - - type - type: object + - 'id' + - 'type' + type: 'object' FileListResponse: - description: A page of files belonging to the requesting workspace. + description: 'A page of files belonging to the requesting workspace.' example: cursor: null data: - created_at: '2025-01-01T00:00:00Z' downloadable: false - filename: document.pdf - id: file_011CNha8iCJcU1wXNR6q4V8w - mime_type: application/pdf + filename: 'document.pdf' + id: 'file_011CNha8iCJcU1wXNR6q4V8w' + mime_type: 'application/pdf' size_bytes: 1024000 - type: file - first_id: file_011CNha8iCJcU1wXNR6q4V8w + type: 'file' + first_id: 'file_011CNha8iCJcU1wXNR6q4V8w' has_more: false - last_id: file_011CNha8iCJcU1wXNR6q4V8w + last_id: 'file_011CNha8iCJcU1wXNR6q4V8w' properties: cursor: - description: Opaque cursor for the next page; null when there are no more results. - nullable: true - type: string + description: 'Opaque cursor for the next page; null when there are no more results.' + type: + - 'string' + - 'null' data: items: $ref: '#/components/schemas/FileMetadata' - type: array + type: 'array' first_id: - nullable: true - type: string + type: + - 'string' + - 'null' has_more: - type: boolean + type: 'boolean' last_id: - nullable: true - type: string - required: - - data - - has_more - - first_id - - last_id - - cursor - type: object + type: + - 'string' + - 'null' + required: + - 'data' + - 'has_more' + - 'first_id' + - 'last_id' + - 'cursor' + type: 'object' FileMetadata: - description: Metadata describing a stored file. + description: 'Metadata describing a stored file.' example: created_at: '2025-01-01T00:00:00Z' downloadable: false - filename: document.pdf - id: file_011CNha8iCJcU1wXNR6q4V8w - mime_type: application/pdf + filename: 'document.pdf' + id: 'file_011CNha8iCJcU1wXNR6q4V8w' + mime_type: 'application/pdf' size_bytes: 1024000 - type: file + type: 'file' properties: created_at: - type: string + type: 'string' downloadable: - type: boolean + type: 'boolean' filename: - type: string + type: 'string' id: - type: string + type: 'string' mime_type: - type: string + type: 'string' size_bytes: - type: integer + type: 'integer' type: enum: - - file - type: string + - 'file' + type: 'string' required: - - id - - type - - filename - - mime_type - - size_bytes - - created_at - - downloadable - type: object + - 'id' + - 'type' + - 'filename' + - 'mime_type' + - 'size_bytes' + - 'created_at' + - 'downloadable' + type: 'object' FileParserPlugin: example: enabled: true - id: file-parser + id: 'file-parser' pdf: - engine: cloudflare-ai + engine: 'cloudflare-ai' properties: enabled: - description: Set to false to disable the file-parser plugin for this request. Defaults to true. - type: boolean + description: 'Set to false to disable the file-parser plugin for this request. Defaults to true.' + type: 'boolean' id: enum: - - file-parser - type: string + - 'file-parser' + type: 'string' pdf: $ref: '#/components/schemas/PDFParserOptions' required: - - id - type: object + - 'id' + type: 'object' FilePath: example: - file_id: file-xyz789 + file_id: 'file-xyz789' index: 0 - type: file_path + type: 'file_path' properties: file_id: - type: string + type: 'string' index: - type: integer + type: 'integer' type: enum: - - file_path - type: string + - 'file_path' + type: 'string' required: - - type - - file_id - - index - type: object + - 'type' + - 'file_id' + - 'index' + type: 'object' FileSearchServerTool: - description: File search tool configuration + description: 'File search tool configuration' example: - type: file_search + type: 'file_search' vector_store_ids: - - vs_abc123 + - 'vs_abc123' properties: filters: anyOf: - properties: key: - type: string + type: 'string' type: enum: - - eq - - ne - - gt - - gte - - lt - - lte - type: string + - 'eq' + - 'ne' + - 'gt' + - 'gte' + - 'lt' + - 'lte' + type: 'string' x-speakeasy-unknown-values: allow value: anyOf: - - type: string - - format: double - type: number - - type: boolean + - type: 'string' + - format: 'double' + type: 'number' + - type: 'boolean' - items: anyOf: - - type: string - - format: double - type: number - type: array + - type: 'string' + - format: 'double' + type: 'number' + type: 'array' required: - - key - - type - - value - type: object + - 'key' + - 'type' + - 'value' + type: 'object' - $ref: '#/components/schemas/CompoundFilter' - - nullable: true + - type: 'null' max_num_results: - type: integer + type: 'integer' ranking_options: properties: ranker: enum: - - auto - - default-2024-11-15 - type: string + - 'auto' + - 'default-2024-11-15' + type: 'string' x-speakeasy-unknown-values: allow score_threshold: - format: double - type: number - type: object + format: 'double' + type: 'number' + type: 'object' type: enum: - - file_search - type: string + - 'file_search' + type: 'string' vector_store_ids: items: - type: string - type: array + type: 'string' + type: 'array' required: - - type - - vector_store_ids - type: object + - 'type' + - 'vector_store_ids' + type: 'object' FilesServerTool: - description: >- - OpenRouter built-in server tool: read, write, edit, and list workspace files via the Files API. Requires the `x-openrouter-file-ids: openrouter` request header. + description: 'OpenRouter built-in server tool: read, write, edit, and list workspace files via the Files API. Requires the `x-openrouter-file-ids: openrouter` request header.' example: parameters: {} - type: openrouter:files + type: 'openrouter:files' properties: parameters: $ref: '#/components/schemas/FilesServerToolConfig' type: enum: - - openrouter:files - type: string + - 'openrouter:files' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' FilesServerToolConfig: - description: Configuration for the openrouter:files server tool + description: 'Configuration for the openrouter:files server tool' example: {} properties: {} - type: object + type: 'object' ForbiddenResponse: - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' properties: error: $ref: '#/components/schemas/ForbiddenResponseErrorData' openrouter_metadata: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' user_id: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - error - type: object + - 'error' + type: 'object' ForbiddenResponseErrorData: - description: Error data for ForbiddenResponse + description: 'Error data for ForbiddenResponse' example: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' properties: code: - type: integer + type: 'integer' message: - type: string + type: 'string' metadata: - additionalProperties: - nullable: true - nullable: true - type: object - required: - - code - - message - type: object + additionalProperties: {} + type: + - 'object' + - 'null' + required: + - 'code' + - 'message' + type: 'object' FormatJsonObjectConfig: - description: JSON object response format + description: 'JSON object response format' example: - type: json_object + type: 'json_object' properties: type: enum: - - json_object - type: string + - 'json_object' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' FormatJsonSchemaConfig: - description: JSON schema constrained response format + description: 'JSON schema constrained response format' example: - description: User information schema - name: user_info + description: 'User information schema' + name: 'user_info' schema: properties: age: - type: number + type: 'number' name: - type: string + type: 'string' required: - - name - type: object - type: json_schema + - 'name' + type: 'object' + type: 'json_schema' properties: description: - type: string + type: 'string' name: - type: string + type: 'string' schema: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' strict: - nullable: true - type: boolean + type: + - 'boolean' + - 'null' type: enum: - - json_schema - type: string + - 'json_schema' + type: 'string' required: - - type - - name - - schema - type: object + - 'type' + - 'name' + - 'schema' + type: 'object' Formats: anyOf: - $ref: '#/components/schemas/FormatTextConfig' - $ref: '#/components/schemas/FormatJsonObjectConfig' - $ref: '#/components/schemas/FormatJsonSchemaConfig' - description: Text response format configuration + description: 'Text response format configuration' example: - type: text + type: 'text' FormatTextConfig: - description: Plain text response format + description: 'Plain text response format' example: - type: text + type: 'text' properties: type: enum: - - text - type: string + - 'text' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' FrameImage: allOf: - $ref: '#/components/schemas/ContentPartImage' - properties: frame_type: - description: Whether this image represents the first or last frame of the video + description: 'Whether this image represents the first or last frame of the video' enum: - - first_frame - - last_frame - example: first_frame - type: string + - 'first_frame' + - 'last_frame' + example: 'first_frame' + type: 'string' x-speakeasy-unknown-values: allow required: - - frame_type - type: object + - 'frame_type' + type: 'object' example: + frame_type: 'first_frame' image_url: - url: https://example.com/image.png - type: image_url + url: 'https://example.com/image.png' + type: 'image_url' FunctionCallArgsDeltaEvent: allOf: - $ref: '#/components/schemas/BaseFunctionCallArgsDeltaEvent' - properties: {} - type: object - description: Event emitted when function call arguments are being streamed + type: 'object' + description: 'Event emitted when function call arguments are being streamed' example: delta: '{"city": "..."}' - item_id: item-1 + item_id: 'item-1' output_index: 0 sequence_number: 4 - type: response.function_call_arguments.delta + type: 'response.function_call_arguments.delta' FunctionCallArgsDoneEvent: allOf: - $ref: '#/components/schemas/BaseFunctionCallArgsDoneEvent' - properties: {} - type: object - description: Event emitted when function call arguments streaming is complete + type: 'object' + description: 'Event emitted when function call arguments streaming is complete' example: arguments: '{"city": "San Francisco", "units": "celsius"}' - item_id: item-1 - name: get_weather + item_id: 'item-1' + name: 'get_weather' output_index: 0 sequence_number: 6 - type: response.function_call_arguments.done + type: 'response.function_call_arguments.done' FunctionCallItem: allOf: - $ref: '#/components/schemas/OpenAIResponseFunctionToolCall' - properties: {} required: - - id - type: object - description: A function call initiated by the model + - 'id' + type: 'object' + description: 'A function call initiated by the model' example: arguments: '{"location":"San Francisco"}' - call_id: call-abc123 - id: call-abc123 - name: get_weather - status: completed - type: function_call + call_id: 'call-abc123' + id: 'call-abc123' + name: 'get_weather' + status: 'completed' + type: 'function_call' FunctionCallOutputItem: allOf: - $ref: '#/components/schemas/OpenAIResponseFunctionToolCallOutput' - properties: output: anyOf: - - type: string + - type: 'string' - items: oneOf: - $ref: '#/components/schemas/InputText' - allOf: - $ref: '#/components/schemas/InputImage' - properties: {} - type: object - description: Image input content item + type: 'object' + description: 'Image input content item' example: - detail: auto - image_url: https://example.com/image.jpg - type: input_image + detail: 'auto' + image_url: 'https://example.com/image.jpg' + type: 'input_image' - $ref: '#/components/schemas/InputFile' - type: array - type: object - description: The output from a function call execution + type: 'array' + type: 'object' + description: 'The output from a function call execution' example: - call_id: call-abc123 - id: output-abc123 + call_id: 'call-abc123' + id: 'output-abc123' output: '{"temperature":72,"conditions":"sunny"}' - status: completed - type: function_call_output + status: 'completed' + type: 'function_call_output' FunctionTool: - description: Function tool definition + description: 'Function tool definition' example: - description: Get the current weather in a location - name: get_weather + description: 'Get the current weather in a location' + name: 'get_weather' parameters: properties: location: - description: The city and state - type: string + description: 'The city and state' + type: 'string' unit: enum: - - celsius - - fahrenheit - type: string + - 'celsius' + - 'fahrenheit' + type: 'string' x-speakeasy-unknown-values: allow required: - - location - type: object - type: function + - 'location' + type: 'object' + type: 'function' properties: description: - nullable: true - type: string + type: + - 'string' + - 'null' name: - type: string + type: 'string' parameters: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' strict: - nullable: true - type: boolean + type: + - 'boolean' + - 'null' type: enum: - - function - type: string + - 'function' + type: 'string' required: - - type - - name - - parameters - type: object + - 'type' + - 'name' + - 'parameters' + type: 'object' FusionAnalysisResult: - description: Structured analysis produced by the fusion judge model. + description: 'Structured analysis produced by the fusion judge model.' example: blind_spots: - - No model considered the impact on existing API consumers. + - 'No model considered the impact on existing API consumers.' consensus: - - All panel models agree the request is asking for a concise summary. + - 'All panel models agree the request is asking for a concise summary.' contradictions: - stances: - - model: openai/gpt-5 - stance: Favors an incremental rollout. - - model: anthropic/claude-sonnet-4.5 - stance: Favors a single coordinated migration. - topic: Recommended approach + - model: 'openai/gpt-5' + stance: 'Favors an incremental rollout.' + - model: 'anthropic/claude-sonnet-4.5' + stance: 'Favors a single coordinated migration.' + topic: 'Recommended approach' partial_coverage: - models: - - openai/gpt-5 - point: Only one model addressed the rollback strategy. + - 'openai/gpt-5' + point: 'Only one model addressed the rollback strategy.' unique_insights: - - insight: Highlighted a backwards-compatibility risk the other models missed. - model: anthropic/claude-sonnet-4.5 + - insight: 'Highlighted a backwards-compatibility risk the other models missed.' + model: 'anthropic/claude-sonnet-4.5' properties: blind_spots: items: - type: string - type: array + type: 'string' + type: 'array' consensus: items: - type: string - type: array + type: 'string' + type: 'array' contradictions: items: properties: @@ -8126,56 +8223,56 @@ components: items: properties: model: - type: string + type: 'string' stance: - type: string + type: 'string' required: - - model - - stance - type: object - type: array + - 'model' + - 'stance' + type: 'object' + type: 'array' topic: - type: string + type: 'string' required: - - topic - - stances - type: object - type: array + - 'topic' + - 'stances' + type: 'object' + type: 'array' partial_coverage: items: properties: models: items: - type: string - type: array + type: 'string' + type: 'array' point: - type: string + type: 'string' required: - - models - - point - type: object - type: array + - 'models' + - 'point' + type: 'object' + type: 'array' unique_insights: items: properties: insight: - type: string + type: 'string' model: - type: string + type: 'string' required: - - model - - insight - type: object - type: array - required: - - consensus - - contradictions - - partial_coverage - - unique_insights - - blind_spots - type: object + - 'model' + - 'insight' + type: 'object' + type: 'array' + required: + - 'consensus' + - 'contradictions' + - 'partial_coverage' + - 'unique_insights' + - 'blind_spots' + type: 'object' FusionCallAnalysisCompletedEvent: - description: Emitted when the fusion judge completes with the structured analysis. + description: 'Emitted when the fusion judge completes with the structured analysis.' example: analysis: blind_spots: [] @@ -8183,885 +8280,911 @@ components: contradictions: [] partial_coverage: [] unique_insights: [] - item_id: st_fusion_abc + item_id: 'st_fusion_abc' output_index: 0 sequence_number: 40 - type: response.fusion_call.analysis.completed + type: 'response.fusion_call.analysis.completed' properties: analysis: $ref: '#/components/schemas/FusionAnalysisResult' item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.fusion_call.analysis.completed - type: string + - 'response.fusion_call.analysis.completed' + type: 'string' required: - - type - - analysis - - output_index - - item_id - - sequence_number - type: object + - 'type' + - 'analysis' + - 'output_index' + - 'item_id' + - 'sequence_number' + type: 'object' FusionCallAnalysisInProgressEvent: - description: Emitted when the fusion judge starts producing the structured analysis. + description: 'Emitted when the fusion judge starts producing the structured analysis.' example: - item_id: st_fusion_abc - judge_model: openai/gpt-5 + item_id: 'st_fusion_abc' + judge_model: 'openai/gpt-5' output_index: 0 sequence_number: 25 - type: response.fusion_call.analysis.in_progress + type: 'response.fusion_call.analysis.in_progress' properties: item_id: - type: string + type: 'string' judge_model: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.fusion_call.analysis.in_progress - type: string + - 'response.fusion_call.analysis.in_progress' + type: 'string' required: - - type - - judge_model - - output_index - - item_id - - sequence_number - type: object + - 'type' + - 'judge_model' + - 'output_index' + - 'item_id' + - 'sequence_number' + type: 'object' FusionCallCompletedEvent: - description: Emitted when the openrouter:fusion tool call finishes. + description: 'Emitted when the openrouter:fusion tool call finishes.' example: - item_id: st_fusion_abc + item_id: 'st_fusion_abc' output_index: 0 sequence_number: 41 - type: response.fusion_call.completed + type: 'response.fusion_call.completed' properties: item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.fusion_call.completed - type: string + - 'response.fusion_call.completed' + type: 'string' required: - - type - - output_index - - item_id - - sequence_number - type: object + - 'type' + - 'output_index' + - 'item_id' + - 'sequence_number' + type: 'object' FusionCallInProgressEvent: - description: Emitted when an openrouter:fusion tool call begins executing. + description: 'Emitted when an openrouter:fusion tool call begins executing.' example: - item_id: st_fusion_abc + item_id: 'st_fusion_abc' output_index: 0 sequence_number: 3 - type: response.fusion_call.in_progress + type: 'response.fusion_call.in_progress' properties: item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.fusion_call.in_progress - type: string + - 'response.fusion_call.in_progress' + type: 'string' required: - - type - - output_index - - item_id - - sequence_number - type: object + - 'type' + - 'output_index' + - 'item_id' + - 'sequence_number' + type: 'object' FusionCallPanelAddedEvent: - description: Emitted when a fusion analysis-panel model starts. + description: 'Emitted when a fusion analysis-panel model starts.' example: - item_id: st_fusion_abc - model: openai/gpt-5 + item_id: 'st_fusion_abc' + model: 'openai/gpt-5' output_index: 0 sequence_number: 4 - type: response.fusion_call.panel.added + type: 'response.fusion_call.panel.added' properties: item_id: - type: string + type: 'string' model: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.fusion_call.panel.added - type: string + - 'response.fusion_call.panel.added' + type: 'string' required: - - type - - model - - output_index - - item_id - - sequence_number - type: object + - 'type' + - 'model' + - 'output_index' + - 'item_id' + - 'sequence_number' + type: 'object' FusionCallPanelCompletedEvent: - description: Emitted when a fusion panel model finishes with its full content. + description: 'Emitted when a fusion panel model finishes with its full content.' example: - content: Full panel response text... - item_id: st_fusion_abc - model: openai/gpt-5 + content: 'Full panel response text...' + item_id: 'st_fusion_abc' + model: 'openai/gpt-5' output_index: 0 sequence_number: 20 - type: response.fusion_call.panel.completed + type: 'response.fusion_call.panel.completed' properties: content: - type: string + type: 'string' item_id: - type: string + type: 'string' model: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.fusion_call.panel.completed - type: string + - 'response.fusion_call.panel.completed' + type: 'string' required: - - type - - model - - content - - output_index - - item_id - - sequence_number - type: object + - 'type' + - 'model' + - 'content' + - 'output_index' + - 'item_id' + - 'sequence_number' + type: 'object' FusionCallPanelDeltaEvent: - description: Incremental content token from a fusion panel model. + description: 'Incremental content token from a fusion panel model.' example: - delta: Carbon taxes - item_id: st_fusion_abc - model: openai/gpt-5 + delta: 'Carbon taxes' + item_id: 'st_fusion_abc' + model: 'openai/gpt-5' output_index: 0 sequence_number: 5 - type: response.fusion_call.panel.delta + type: 'response.fusion_call.panel.delta' properties: delta: - type: string + type: 'string' item_id: - type: string + type: 'string' model: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.fusion_call.panel.delta - type: string + - 'response.fusion_call.panel.delta' + type: 'string' required: - - type - - model - - delta - - output_index - - item_id - - sequence_number - type: object + - 'type' + - 'model' + - 'delta' + - 'output_index' + - 'item_id' + - 'sequence_number' + type: 'object' FusionCallPanelFailedEvent: - description: Emitted when a fusion panel model fails. + description: 'Emitted when a fusion panel model fails.' example: - error: Upstream provider error - item_id: st_fusion_abc - model: openai/gpt-5 + error: 'Upstream provider error' + item_id: 'st_fusion_abc' + model: 'openai/gpt-5' output_index: 0 sequence_number: 18 status_code: 502 - type: response.fusion_call.panel.failed + type: 'response.fusion_call.panel.failed' properties: error: - type: string + type: 'string' item_id: - type: string + type: 'string' model: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' status_code: - type: integer + type: 'integer' type: enum: - - response.fusion_call.panel.failed - type: string + - 'response.fusion_call.panel.failed' + type: 'string' required: - - type - - model - - error - - output_index - - item_id - - sequence_number - type: object + - 'type' + - 'model' + - 'error' + - 'output_index' + - 'item_id' + - 'sequence_number' + type: 'object' FusionCallPanelReasoningDeltaEvent: - description: Incremental reasoning token from a fusion panel model. + description: 'Incremental reasoning token from a fusion panel model.' example: - delta: Considering both sides - item_id: st_fusion_abc - model: openai/gpt-5 + delta: 'Considering both sides' + item_id: 'st_fusion_abc' + model: 'openai/gpt-5' output_index: 0 sequence_number: 6 - type: response.fusion_call.panel.reasoning.delta + type: 'response.fusion_call.panel.reasoning.delta' properties: delta: - type: string + type: 'string' item_id: - type: string + type: 'string' model: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.fusion_call.panel.reasoning.delta - type: string + - 'response.fusion_call.panel.reasoning.delta' + type: 'string' required: - - type - - model - - delta - - output_index - - item_id - - sequence_number - type: object + - 'type' + - 'model' + - 'delta' + - 'output_index' + - 'item_id' + - 'sequence_number' + type: 'object' FusionPlugin: example: analysis_models: - - ~anthropic/claude-opus-latest - - ~openai/gpt-latest - - ~google/gemini-pro-latest + - '~anthropic/claude-opus-latest' + - '~openai/gpt-latest' + - '~google/gemini-pro-latest' enabled: true - id: fusion - model: ~anthropic/claude-opus-latest + id: 'fusion' + model: '~anthropic/claude-opus-latest' properties: analysis_models: - description: >- - Slugs of models to run in parallel as the "expert panel" the judge analyzes. Each model receives the same user prompt with web_search + web_fetch enabled. Capped at 8 models to bound cost amplification. When omitted, defaults to the Quality preset from the /labs/fusion UI (~anthropic/claude-opus-latest, ~openai/gpt-latest, ~google/gemini-pro-latest). + description: 'Slugs of models to run in parallel as the "expert panel" the judge analyzes. Each model receives the same user prompt with web_search + web_fetch enabled. Capped at 8 models to bound cost amplification. When omitted, defaults to the Quality preset from the /labs/fusion UI (~anthropic/claude-opus-latest, ~openai/gpt-latest, ~google/gemini-pro-latest).' example: - - ~anthropic/claude-opus-latest - - ~openai/gpt-latest - - ~google/gemini-pro-latest + - '~anthropic/claude-opus-latest' + - '~openai/gpt-latest' + - '~google/gemini-pro-latest' items: - type: string + type: 'string' maxItems: 8 minItems: 1 - type: array + type: 'array' enabled: - description: Set to false to disable the fusion plugin for this request. Defaults to true. - type: boolean + description: 'Set to false to disable the fusion plugin for this request. Defaults to true.' + type: 'boolean' id: enum: - - fusion - type: string + - 'fusion' + type: 'string' max_tool_calls: - description: >- - Maximum number of tool-calling steps each panelist (analysis model) and the judge model may take during their agentic web-research loop. Models with web_search/web_fetch enabled iterate until they produce a text response or hit this ceiling. Defaults to 8. Capped at 16. + description: 'Maximum number of tool-calling steps each panelist (analysis model) and the judge model may take during their agentic web-research loop. Models with web_search/web_fetch enabled iterate until they produce a text response or hit this ceiling. Defaults to 8. Capped at 16.' example: 12 maximum: 16 minimum: 1 - type: integer + type: 'integer' model: - description: >- - Slug of the model that performs both the judge step (with web_search + web_fetch) and the final synthesis. When omitted, defaults to the first model in the Quality preset. - example: ~anthropic/claude-opus-latest - type: string + description: 'Slug of the model that performs both the judge step (with web_search + web_fetch) and the final synthesis. When omitted, defaults to the first model in the Quality preset.' + example: '~anthropic/claude-opus-latest' + type: 'string' preset: - description: >- - A curated OpenRouter fusion preset (slugs follow `-`, e.g. `general-high`). Expands server-side into the preset's analysis_models panel and judge model, so callers never name individual models. Explicitly provided `analysis_models` / `model` take precedence. - enum: - - general-high - - general-budget - - general-fast - example: general-high - type: string + description: 'A curated OpenRouter fusion preset (slugs follow `-`, e.g. `general-high`). Expands server-side into the preset''s analysis_models panel and judge model, so callers never name individual models. Explicitly provided `analysis_models` / `model` take precedence.' + enum: + - 'general-high' + - 'general-budget' + - 'general-fast' + example: 'general-high' + type: 'string' x-speakeasy-unknown-values: allow tools: - description: >- - Server tools available to panelist and judge inner calls. Each entry uses the same `{ type, parameters? }` shorthand as the outer Chat Completions request. When omitted, defaults to `[{ type: "openrouter:web_search" }, { type: "openrouter:web_fetch" }]`. Pass an empty array to disable tools entirely (panelists answer from parametric knowledge only). + description: 'Server tools available to panelist and judge inner calls. Each entry uses the same `{ type, parameters? }` shorthand as the outer Chat Completions request. When omitted, defaults to `[{ type: "openrouter:web_search" }, { type: "openrouter:web_fetch" }]`. Pass an empty array to disable tools entirely (panelists answer from parametric knowledge only).' example: - parameters: excluded_domains: - - example.com - type: openrouter:web_search - - type: openrouter:web_fetch + - 'example.com' + type: 'openrouter:web_search' + - type: 'openrouter:web_fetch' items: properties: parameters: additionalProperties: anyOf: - - type: string - - format: double - type: number - - type: boolean - - nullable: true + - type: 'string' + - format: 'double' + type: 'number' + - type: 'boolean' + - type: 'null' - items: anyOf: - - type: string - - format: double - type: number - - type: boolean - - nullable: true - - nullable: true - type: array + - type: 'string' + - format: 'double' + type: 'number' + - type: 'boolean' + - type: 'null' + - type: 'null' + type: 'array' - additionalProperties: anyOf: - - type: string - - format: double - type: number - - type: boolean - - nullable: true - - nullable: true - type: object - - nullable: true - description: Optional configuration forwarded as the tool's `parameters` object. - type: object + - type: 'string' + - format: 'double' + type: 'number' + - type: 'boolean' + - type: 'null' + - type: 'null' + type: 'object' + - type: 'null' + description: 'Optional configuration forwarded as the tool''s `parameters` object.' + type: 'object' type: - description: Server tool type identifier (e.g. "openrouter:web_search", "openrouter:web_fetch"). - type: string + description: 'Server tool type identifier (e.g. "openrouter:web_search", "openrouter:web_fetch").' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' maxItems: 8 - type: array + type: 'array' required: - - id - type: object + - 'id' + type: 'object' FusionServerTool_OpenRouter: - description: >- - OpenRouter built-in server tool: fans out the user prompt to a panel of analysis models, then asks a judge model to summarize their collective output as structured JSON the outer model can synthesize from. + description: 'OpenRouter built-in server tool: fans out the user prompt to a panel of analysis models, then asks a judge model to summarize their collective output as structured JSON the outer model can synthesize from.' example: parameters: analysis_models: - - ~anthropic/claude-opus-latest - - ~openai/gpt-latest - type: openrouter:fusion + - '~anthropic/claude-opus-latest' + - '~openai/gpt-latest' + type: 'openrouter:fusion' properties: parameters: $ref: '#/components/schemas/FusionServerToolConfig' type: enum: - - openrouter:fusion - type: string + - 'openrouter:fusion' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' FusionServerToolConfig: - description: Configuration for the openrouter:fusion server tool. + description: 'Configuration for the openrouter:fusion server tool.' example: analysis_models: - - ~anthropic/claude-opus-latest - - ~openai/gpt-latest - - ~google/gemini-pro-latest + - '~anthropic/claude-opus-latest' + - '~openai/gpt-latest' + - '~google/gemini-pro-latest' properties: analysis_models: - description: >- - Slugs of models to run in parallel as the analysis panel. Each model receives the user prompt with openrouter:web_search and openrouter:web_fetch enabled, then a judge model summarizes the collective output into structured analysis JSON. Capped at 8 models to bound cost amplification. Defaults to the Quality preset from /labs/fusion. + description: 'Slugs of models to run in parallel as the analysis panel. Each model receives the user prompt with openrouter:web_search and openrouter:web_fetch enabled, then a judge model summarizes the collective output into structured analysis JSON. Capped at 8 models to bound cost amplification. Defaults to the Quality preset from /labs/fusion.' example: - - ~anthropic/claude-opus-latest - - ~openai/gpt-latest - - ~google/gemini-pro-latest + - '~anthropic/claude-opus-latest' + - '~openai/gpt-latest' + - '~google/gemini-pro-latest' items: - type: string + type: 'string' maxItems: 8 minItems: 1 - type: array + type: 'array' cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' max_completion_tokens: - description: >- - Maximum number of output tokens (including reasoning tokens) each panelist and the judge model may produce per inner call. Controls the total output budget so reasoning-heavy models like GPT-5.5 do not exhaust their token allowance before producing visible text. When omitted, panelists default to 32000 and the judge to 50000. + description: 'Maximum number of output tokens (including reasoning tokens) each panelist and the judge model may produce per inner call. Controls the total output budget so reasoning-heavy models like GPT-5.5 do not exhaust their token allowance before producing visible text. When omitted, panelists default to 32000 and the judge to 50000.' example: 16384 - type: integer + type: 'integer' max_tool_calls: - description: >- - Maximum number of tool-calling steps each panelist (analysis model) and the judge model may take during their agentic web-research loop. Models with web_search/web_fetch enabled iterate until they produce a text response or hit this ceiling. Defaults to 8. Capped at 16. + description: 'Maximum number of tool-calling steps each panelist (analysis model) and the judge model may take during their agentic web-research loop. Models with web_search/web_fetch enabled iterate until they produce a text response or hit this ceiling. Defaults to 8. Capped at 16.' example: 12 maximum: 16 minimum: 1 - type: integer + type: 'integer' model: - description: >- - Slug of the judge model that produces the structured analysis JSON. Defaults to the model used in the outer API request. - example: ~anthropic/claude-opus-latest - type: string + description: 'Slug of the judge model that produces the structured analysis JSON. Defaults to the model used in the outer API request.' + example: '~anthropic/claude-opus-latest' + type: 'string' reasoning: - description: >- - Reasoning configuration forwarded to panelist and judge inner calls. Use this to control reasoning effort and token budget for models that support extended thinking. + description: 'Reasoning configuration forwarded to panelist and judge inner calls. Use this to control reasoning effort and token budget for models that support extended thinking.' properties: effort: - description: Reasoning effort level for panelist and judge inner calls. + description: 'Reasoning effort level for panelist and judge inner calls.' enum: - - max - - xhigh - - high - - medium - - low - - minimal - - none - type: string + - 'max' + - 'xhigh' + - 'high' + - 'medium' + - 'low' + - 'minimal' + - 'none' + type: 'string' x-speakeasy-unknown-values: allow max_tokens: - description: >- - Maximum number of reasoning tokens each panelist and judge model may use. Helps bound cost when models allocate too much budget to chain-of-thought. - type: integer - type: object + description: 'Maximum number of reasoning tokens each panelist and judge model may use. Helps bound cost when models allocate too much budget to chain-of-thought.' + type: 'integer' + type: 'object' temperature: - description: >- - Temperature forwarded to panelist inner calls. The judge always runs at temperature 0 regardless of this value. When omitted, the provider's default applies. + description: 'Temperature forwarded to panelist inner calls. The judge always runs at temperature 0 regardless of this value. When omitted, the provider''s default applies.' example: 0.7 - format: double - type: number + format: 'double' + type: 'number' tools: - description: >- - Server tools available to panelist and judge inner calls. Each entry uses the same `{ type, parameters? }` shorthand as the outer Chat Completions request. When omitted, defaults to `[{ type: "openrouter:web_search" }, { type: "openrouter:web_fetch" }]`. Pass an empty array to disable tools entirely (panelists answer from parametric knowledge only). + description: 'Server tools available to panelist and judge inner calls. Each entry uses the same `{ type, parameters? }` shorthand as the outer Chat Completions request. When omitted, defaults to `[{ type: "openrouter:web_search" }, { type: "openrouter:web_fetch" }]`. Pass an empty array to disable tools entirely (panelists answer from parametric knowledge only).' example: - parameters: excluded_domains: - - example.com - type: openrouter:web_search - - type: openrouter:web_fetch + - 'example.com' + type: 'openrouter:web_search' + - type: 'openrouter:web_fetch' items: properties: parameters: - additionalProperties: - nullable: true - description: Optional configuration forwarded as the tool's `parameters` object. - type: object + additionalProperties: {} + description: 'Optional configuration forwarded as the tool''s `parameters` object.' + type: 'object' type: - description: Server tool type identifier (e.g. "openrouter:web_search", "openrouter:web_fetch"). - type: string + description: 'Server tool type identifier (e.g. "openrouter:web_search", "openrouter:web_fetch").' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' maxItems: 8 - type: array - type: object + type: 'array' + type: 'object' FusionSource: - description: A web page retrieved via web search during a fusion run. + description: 'A web page retrieved via web search during a fusion run.' example: - title: Example article title - url: https://example.com/article + title: 'Example article title' + url: 'https://example.com/article' properties: title: - description: Title of the retrieved web page. - type: string + description: 'Title of the retrieved web page.' + type: 'string' url: - description: URL of the web page a panel or the judge retrieved during the run. - type: string + description: 'URL of the web page a panel or the judge retrieved during the run.' + type: 'string' required: - - url - - title - type: object + - 'url' + - 'title' + type: 'object' GenerationContentData: - description: Stored prompt and completion content + description: 'Stored prompt and completion content' example: input: messages: - - content: What is the meaning of life? - role: user + - content: 'What is the meaning of life?' + role: 'user' output: - completion: The meaning of life is a philosophical question... + completion: 'The meaning of life is a philosophical question...' reasoning: null properties: input: anyOf: - properties: prompt: - example: What is the meaning of life? - type: string + example: 'What is the meaning of life?' + type: 'string' required: - - prompt - type: object + - 'prompt' + type: 'object' - properties: messages: example: - - content: What is the meaning of life? - role: user - items: - nullable: true - type: array + - content: 'What is the meaning of life?' + role: 'user' + items: {} + type: 'array' required: - - messages - type: object - description: The input to the generation — either a prompt string or an array of messages + - 'messages' + type: 'object' + description: 'The input to the generation — either a prompt string or an array of messages' output: - description: The output from the generation + description: 'The output from the generation' properties: completion: - description: The completion output - example: The meaning of life is a philosophical question... - nullable: true - type: string + description: 'The completion output' + example: 'The meaning of life is a philosophical question...' + type: + - 'string' + - 'null' reasoning: - description: Reasoning/thinking output, if any + description: 'Reasoning/thinking output, if any' example: null - nullable: true - type: string + type: + - 'string' + - 'null' required: - - reasoning - - completion - type: object + - 'reasoning' + - 'completion' + type: 'object' required: - - input - - output - type: object + - 'input' + - 'output' + type: 'object' GenerationContentResponse: - description: Stored prompt and completion content for a generation + description: 'Stored prompt and completion content for a generation' example: data: input: messages: - - content: What is the meaning of life? - role: user + - content: 'What is the meaning of life?' + role: 'user' output: - completion: The meaning of life is a philosophical question... + completion: 'The meaning of life is a philosophical question...' reasoning: null properties: data: $ref: '#/components/schemas/GenerationContentData' required: - - data - type: object + - 'data' + type: 'object' GenerationResponse: - description: Generation response + description: 'Generation response' example: data: - api_type: completions + api_type: 'completions' app_id: 12345 cache_discount: null cancelled: false created_at: '2024-07-15T23:33:19.433273+00:00' - external_user: user-123 - finish_reason: stop + data_region: 'global' + external_user: 'user-123' + finish_reason: 'stop' generation_time: 1200 - http_referer: https://openrouter.ai/ - id: gen-3bhGkxlo4XFrqiabUM7NDtwDzWwG + http_referer: 'https://openrouter.ai/' + id: 'gen-3bhGkxlo4XFrqiabUM7NDtwDzWwG' is_byok: false latency: 1250 - model: sao10k/l3-stheno-8b + model: 'sao10k/l3-stheno-8b' moderation_latency: 50 - native_finish_reason: stop + native_finish_reason: 'stop' native_tokens_cached: 3 native_tokens_completion: 25 native_tokens_completion_images: 0 native_tokens_prompt: 10 native_tokens_reasoning: 5 + num_fetches: 0 num_input_audio_prompt: 0 num_media_completion: 0 num_media_prompt: 1 num_search_results: 5 - origin: https://openrouter.ai/ - provider_name: Infermatic + origin: 'https://openrouter.ai/' + preset_id: 'a9e8d400-592a-494f-908c-375efa66cafd' + provider_name: 'Infermatic' provider_responses: null - request_id: req-1727282430-aBcDeFgHiJkLmNoPqRsT - router: openrouter/auto - service_tier: priority + request_id: 'req-1727282430-aBcDeFgHiJkLmNoPqRsT' + router: 'openrouter/auto' + service_tier: 'priority' session_id: null streamed: true tokens_completion: 25 tokens_prompt: 10 total_cost: 0.0015 - upstream_id: chatcmpl-791bcf62-080e-4568-87d0-94c72e3b4946 + upstream_id: 'chatcmpl-791bcf62-080e-4568-87d0-94c72e3b4946' upstream_inference_cost: 0.0012 usage: 0.0015 - user_agent: Mozilla/5.0 + user_agent: 'Mozilla/5.0' + web_search_engine: 'exa' properties: data: - description: Generation data + description: 'Generation data' properties: api_type: - description: Type of API used for the generation + description: 'Type of API used for the generation' enum: - - completions - - embeddings - - rerank - - tts - - stt - - video - - image + - 'completions' + - 'embeddings' + - 'rerank' + - 'tts' + - 'stt' + - 'video' + - 'image' - null - nullable: true - type: string + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow app_id: - description: ID of the app that made the request + description: 'ID of the app that made the request' example: 12345 - nullable: true - type: integer + type: + - 'integer' + - 'null' cache_discount: - description: Discount applied due to caching + description: 'Discount applied due to caching' example: 0.0002 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' cancelled: - description: Whether the generation was cancelled + description: 'Whether the generation was cancelled' example: false - nullable: true - type: boolean + type: + - 'boolean' + - 'null' created_at: - description: ISO 8601 timestamp of when the generation was created + description: 'ISO 8601 timestamp of when the generation was created' example: '2024-07-15T23:33:19.433273+00:00' - type: string + type: 'string' data_region: - description: The data region this generation was routed through. 'europe' for EU-routed requests, 'global' otherwise. + description: 'The data region this generation was routed through. ''europe'' for EU-routed requests, ''global'' otherwise.' enum: - - global - - europe - example: global - type: string + - 'global' + - 'europe' + example: 'global' + type: 'string' x-speakeasy-unknown-values: allow external_user: - description: External user identifier - example: user-123 - nullable: true - type: string + description: 'External user identifier' + example: 'user-123' + type: + - 'string' + - 'null' finish_reason: - description: Reason the generation finished - example: stop - nullable: true - type: string + description: 'Reason the generation finished' + example: 'stop' + type: + - 'string' + - 'null' generation_time: - description: Time taken for generation in milliseconds + description: 'Time taken for generation in milliseconds' example: 1200 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' http_referer: - description: Referer header from the request - nullable: true - type: string + description: 'Referer header from the request' + type: + - 'string' + - 'null' id: - description: Unique identifier for the generation - example: gen-3bhGkxlo4XFrqiabUM7NDtwDzWwG - type: string + description: 'Unique identifier for the generation' + example: 'gen-3bhGkxlo4XFrqiabUM7NDtwDzWwG' + type: 'string' is_byok: - description: Whether this used bring-your-own-key + description: 'Whether this used bring-your-own-key' example: false - type: boolean + type: 'boolean' latency: - description: Total latency in milliseconds + description: 'Total latency in milliseconds' example: 1250 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' model: - description: Model used for the generation - example: sao10k/l3-stheno-8b - type: string + description: 'Model used for the generation' + example: 'sao10k/l3-stheno-8b' + type: 'string' moderation_latency: - description: Moderation latency in milliseconds + description: 'Moderation latency in milliseconds' example: 50 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' native_finish_reason: - description: Native finish reason as reported by provider - example: stop - nullable: true - type: string + description: 'Native finish reason as reported by provider' + example: 'stop' + type: + - 'string' + - 'null' native_tokens_cached: - description: Native cached tokens as reported by provider + description: 'Native cached tokens as reported by provider' example: 3 - nullable: true - type: integer + type: + - 'integer' + - 'null' native_tokens_completion: - description: Native completion tokens as reported by provider + description: 'Native completion tokens as reported by provider' example: 25 - nullable: true - type: integer + type: + - 'integer' + - 'null' native_tokens_completion_images: - description: Native completion image tokens as reported by provider + description: 'Native completion image tokens as reported by provider' example: 0 - nullable: true - type: integer + type: + - 'integer' + - 'null' native_tokens_prompt: - description: Native prompt tokens as reported by provider + description: 'Native prompt tokens as reported by provider' example: 10 - nullable: true - type: integer + type: + - 'integer' + - 'null' native_tokens_reasoning: - description: Native reasoning tokens as reported by provider + description: 'Native reasoning tokens as reported by provider' example: 5 - nullable: true - type: integer + type: + - 'integer' + - 'null' num_fetches: - description: Number of web fetches performed + description: 'Number of web fetches performed' example: 0 - nullable: true - type: integer + type: + - 'integer' + - 'null' num_input_audio_prompt: - description: Number of audio inputs in the prompt + description: 'Number of audio inputs in the prompt' example: 0 - nullable: true - type: integer + type: + - 'integer' + - 'null' num_media_completion: - description: Number of media items in the completion + description: 'Number of media items in the completion' example: 0 - nullable: true - type: integer + type: + - 'integer' + - 'null' num_media_prompt: - description: Number of media items in the prompt + description: 'Number of media items in the prompt' example: 1 - nullable: true - type: integer + type: + - 'integer' + - 'null' num_search_results: - description: Number of search results included + description: 'Number of search results included' example: 5 - nullable: true - type: integer + type: + - 'integer' + - 'null' origin: - description: Origin URL of the request - example: https://openrouter.ai/ - type: string + description: 'Origin URL of the request' + example: 'https://openrouter.ai/' + type: 'string' preset_id: - description: ID of the preset used for this generation, null if no preset was used - example: a9e8d400-592a-494f-908c-375efa66cafd - nullable: true - type: string + description: 'ID of the preset used for this generation, null if no preset was used' + example: 'a9e8d400-592a-494f-908c-375efa66cafd' + type: + - 'string' + - 'null' provider_name: - description: Name of the provider that served the request - example: Infermatic - nullable: true - type: string + description: 'Name of the provider that served the request' + example: 'Infermatic' + type: + - 'string' + - 'null' provider_responses: - description: List of provider responses for this generation, including fallback attempts + description: 'List of provider responses for this generation, including fallback attempts' items: $ref: '#/components/schemas/ProviderResponse' - nullable: true - type: array + type: + - 'array' + - 'null' request_id: - description: Unique identifier grouping all generations from a single API request - example: req-1727282430-aBcDeFgHiJkLmNoPqRsT - nullable: true - type: string + description: 'Unique identifier grouping all generations from a single API request' + example: 'req-1727282430-aBcDeFgHiJkLmNoPqRsT' + type: + - 'string' + - 'null' response_cache_source_id: - description: If this generation was served from response cache, contains the original generation ID. Null otherwise. - nullable: true - type: string + description: 'If this generation was served from response cache, contains the original generation ID. Null otherwise.' + type: + - 'string' + - 'null' router: - description: Router used for the request (e.g., openrouter/auto) - example: openrouter/auto - nullable: true - type: string + description: 'Router used for the request (e.g., openrouter/auto)' + example: 'openrouter/auto' + type: + - 'string' + - 'null' service_tier: - description: Service tier the upstream provider reported running this request on, or null if it did not report one. - example: priority - nullable: true - type: string + description: 'Service tier the upstream provider reported running this request on, or null if it did not report one.' + example: 'priority' + type: + - 'string' + - 'null' session_id: - description: Session identifier grouping multiple generations in the same session - nullable: true - type: string + description: 'Session identifier grouping multiple generations in the same session' + type: + - 'string' + - 'null' streamed: - description: Whether the response was streamed + description: 'Whether the response was streamed' example: true - nullable: true - type: boolean + type: + - 'boolean' + - 'null' tokens_completion: - description: Number of tokens in the completion + description: 'Number of tokens in the completion' example: 25 - nullable: true - type: integer + type: + - 'integer' + - 'null' tokens_prompt: - description: Number of tokens in the prompt + description: 'Number of tokens in the prompt' example: 10 - nullable: true - type: integer + type: + - 'integer' + - 'null' total_cost: - description: Total cost of the generation in USD + description: 'Total cost of the generation in USD' example: 0.0015 - format: double - type: number + format: 'double' + type: 'number' upstream_id: - description: Upstream provider's identifier for this generation - example: chatcmpl-791bcf62-080e-4568-87d0-94c72e3b4946 - nullable: true - type: string + description: 'Upstream provider''s identifier for this generation' + example: 'chatcmpl-791bcf62-080e-4568-87d0-94c72e3b4946' + type: + - 'string' + - 'null' upstream_inference_cost: - description: Cost charged by the upstream provider + description: 'Cost charged by the upstream provider' example: 0.0012 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' usage: - description: Usage amount in USD + description: 'Usage amount in USD' example: 0.0015 - format: double - type: number + format: 'double' + type: 'number' user_agent: - description: User-Agent header from the request - nullable: true - type: string + description: 'User-Agent header from the request' + type: + - 'string' + - 'null' web_search_engine: - description: The resolved web search engine used for this generation (e.g. exa, firecrawl, parallel) - example: exa - nullable: true - type: string + description: 'The resolved web search engine used for this generation (e.g. exa, firecrawl, parallel)' + example: 'exa' + type: + - 'string' + - 'null' required: - - id - - upstream_id - - total_cost - - cache_discount - - upstream_inference_cost - - created_at - - model - - app_id - - streamed - - cancelled - - provider_name - - latency - - moderation_latency - - generation_time - - finish_reason - - service_tier - - tokens_prompt - - tokens_completion - - native_tokens_prompt - - native_tokens_completion - - native_tokens_completion_images - - native_tokens_reasoning - - native_tokens_cached - - num_media_prompt - - num_input_audio_prompt - - num_media_completion - - num_search_results - - num_fetches - - web_search_engine - - origin - - usage - - is_byok - - native_finish_reason - - external_user - - api_type - - preset_id - - router - - provider_responses - - user_agent - - http_referer - - data_region - type: object - required: - - data - type: object + - 'id' + - 'upstream_id' + - 'total_cost' + - 'cache_discount' + - 'upstream_inference_cost' + - 'created_at' + - 'model' + - 'app_id' + - 'streamed' + - 'cancelled' + - 'provider_name' + - 'latency' + - 'moderation_latency' + - 'generation_time' + - 'finish_reason' + - 'service_tier' + - 'tokens_prompt' + - 'tokens_completion' + - 'native_tokens_prompt' + - 'native_tokens_completion' + - 'native_tokens_completion_images' + - 'native_tokens_reasoning' + - 'native_tokens_cached' + - 'num_media_prompt' + - 'num_input_audio_prompt' + - 'num_media_completion' + - 'num_search_results' + - 'num_fetches' + - 'web_search_engine' + - 'origin' + - 'usage' + - 'is_byok' + - 'native_finish_reason' + - 'external_user' + - 'api_type' + - 'preset_id' + - 'router' + - 'provider_responses' + - 'user_agent' + - 'http_referer' + - 'data_region' + type: 'object' + required: + - 'data' + type: 'object' GetBYOKKeyResponse: example: data: @@ -9070,508 +9193,519 @@ components: allowed_user_ids: null created_at: '2025-08-24T10:30:00Z' disabled: false - id: 11111111-2222-3333-4444-555555555555 + id: '11111111-2222-3333-4444-555555555555' is_fallback: false - label: sk-...AbCd - name: Production OpenAI Key - provider: openai + label: 'sk-...AbCd' + name: 'Production OpenAI Key' + provider: 'openai' sort_order: 0 - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: data: allOf: - $ref: '#/components/schemas/BYOKKey' - - description: The BYOK credential. + - description: 'The BYOK credential.' required: - - data - type: object + - 'data' + type: 'object' GetGuardrailResponse: example: data: allowed_models: null allowed_providers: - - openai - - anthropic - - google + - 'openai' + - 'anthropic' + - 'google' content_filter_builtins: - - action: redact + - action: 'redact' label: '[EMAIL]' - slug: email + slug: 'email' content_filters: null created_at: '2025-08-24T10:30:00Z' - description: Guardrail for production environment + description: 'Guardrail for production environment' enforce_zdr: null enforce_zdr_anthropic: true enforce_zdr_google: false enforce_zdr_openai: true enforce_zdr_other: false enforce_zdr_xai: false - id: 550e8400-e29b-41d4-a716-446655440000 + id: '550e8400-e29b-41d4-a716-446655440000' ignored_models: null ignored_providers: null limit_usd: 100 - name: Production Guardrail - reset_interval: monthly + name: 'Production Guardrail' + reset_interval: 'monthly' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' properties: data: allOf: - $ref: '#/components/schemas/Guardrail' - - description: The guardrail + - description: 'The guardrail' required: - - data - type: object + - 'data' + type: 'object' GetObservabilityDestinationResponse: example: data: api_key_hashes: null config: - baseUrl: https://us.cloud.langfuse.com - publicKey: pk-l...EfGh - secretKey: sk-l...AbCd + baseUrl: 'https://us.cloud.langfuse.com' + publicKey: 'pk-l...EfGh' + secretKey: 'sk-l...AbCd' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Langfuse + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Langfuse' privacy_mode: false sampling_rate: 1 - type: langfuse + type: 'langfuse' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: data: allOf: - $ref: '#/components/schemas/ObservabilityDestination' - - description: The observability destination. + - description: 'The observability destination.' required: - - data - type: object + - 'data' + type: 'object' GetPresetResponse: - description: A preset with its currently designated version. + description: 'A preset with its currently designated version.' example: data: created_at: '2026-04-20T10:00:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' description: null designated_version: config: - model: openai/gpt-4o + model: 'openai/gpt-4o' temperature: 0.7 created_at: '2026-04-20T10:00:00Z' - creator_id: user_2dHFtVWx2n56w6HkM0000000000 - id: 550e8400-e29b-41d4-a716-446655440000 - preset_id: 650e8400-e29b-41d4-a716-446655440001 - system_prompt: You are a helpful assistant. + creator_id: 'user_2dHFtVWx2n56w6HkM0000000000' + id: '550e8400-e29b-41d4-a716-446655440000' + preset_id: '650e8400-e29b-41d4-a716-446655440001' + system_prompt: 'You are a helpful assistant.' updated_at: '2026-04-20T10:00:00Z' version: 1 - designated_version_id: 550e8400-e29b-41d4-a716-446655440000 - id: 650e8400-e29b-41d4-a716-446655440001 - name: my-preset - slug: my-preset - status: active + designated_version_id: '550e8400-e29b-41d4-a716-446655440000' + id: '650e8400-e29b-41d4-a716-446655440001' + name: 'my-preset' + slug: 'my-preset' + status: 'active' status_updated_at: null updated_at: '2026-04-20T10:00:00Z' - workspace_id: 750e8400-e29b-41d4-a716-446655440002 + workspace_id: '750e8400-e29b-41d4-a716-446655440002' properties: data: $ref: '#/components/schemas/PresetWithDesignatedVersion' required: - - data - type: object + - 'data' + type: 'object' GetPresetVersionResponse: - description: A single version of a preset. + description: 'A single version of a preset.' example: data: config: - model: openai/gpt-4o + model: 'openai/gpt-4o' temperature: 0.7 created_at: '2026-04-20T10:00:00Z' - creator_id: user_2dHFtVWx2n56w6HkM0000000000 - id: 550e8400-e29b-41d4-a716-446655440000 - preset_id: 650e8400-e29b-41d4-a716-446655440001 - system_prompt: You are a helpful assistant. + creator_id: 'user_2dHFtVWx2n56w6HkM0000000000' + id: '550e8400-e29b-41d4-a716-446655440000' + preset_id: '650e8400-e29b-41d4-a716-446655440001' + system_prompt: 'You are a helpful assistant.' updated_at: '2026-04-20T10:00:00Z' version: 1 properties: data: $ref: '#/components/schemas/PresetDesignatedVersion' required: - - data - type: object + - 'data' + type: 'object' GetWorkspaceResponse: example: data: created_at: '2025-08-24T10:30:00Z' - created_by: user_abc123 - default_image_model: openai/dall-e-3 - default_provider_sort: price - default_text_model: openai/gpt-4o - description: Production environment workspace - id: 550e8400-e29b-41d4-a716-446655440000 + created_by: 'user_abc123' + default_image_model: 'openai/dall-e-3' + default_provider_sort: 'price' + default_text_model: 'openai/gpt-4o' + description: 'Production environment workspace' + id: '550e8400-e29b-41d4-a716-446655440000' io_logging_api_key_ids: null io_logging_sampling_rate: 1 is_data_discount_logging_enabled: true is_observability_broadcast_enabled: false is_observability_io_logging_enabled: false - name: Production - slug: production + name: 'Production' + slug: 'production' updated_at: '2025-08-24T15:45:00Z' properties: data: allOf: - $ref: '#/components/schemas/Workspace' - - description: The workspace + - description: 'The workspace' required: - - data - type: object + - 'data' + type: 'object' GoneResponse: - description: Gone - Endpoint has been permanently removed or deprecated + description: 'Gone - Endpoint has been permanently removed or deprecated' example: error: code: 410 - message: >- - The Coinbase APIs used by this endpoint have been deprecated, so the Coinbase Commerce credits API has been removed. Use the web credits purchase flow instead. + message: 'The Coinbase APIs used by this endpoint have been deprecated, so the Coinbase Commerce credits API has been removed. Use the web credits purchase flow instead.' properties: error: $ref: '#/components/schemas/GoneResponseErrorData' openrouter_metadata: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' user_id: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - error - type: object + - 'error' + type: 'object' GoneResponseErrorData: - description: Error data for GoneResponse + description: 'Error data for GoneResponse' example: code: 410 - message: >- - The Coinbase APIs used by this endpoint have been deprecated, so the Coinbase Commerce credits API has been removed. Use the web credits purchase flow instead. + message: 'The Coinbase APIs used by this endpoint have been deprecated, so the Coinbase Commerce credits API has been removed. Use the web credits purchase flow instead.' properties: code: - type: integer + type: 'integer' message: - type: string + type: 'string' metadata: - additionalProperties: - nullable: true - nullable: true - type: object - required: - - code - - message - type: object + additionalProperties: {} + type: + - 'object' + - 'null' + required: + - 'code' + - 'message' + type: 'object' Guardrail: example: allowed_models: null allowed_providers: - - openai - - anthropic - - google + - 'openai' + - 'anthropic' + - 'google' content_filter_builtins: - - action: redact + - action: 'redact' label: '[EMAIL]' - slug: email + slug: 'email' content_filters: null created_at: '2025-08-24T10:30:00Z' - description: Guardrail for production environment + description: 'Guardrail for production environment' enforce_zdr: null enforce_zdr_anthropic: true enforce_zdr_google: false enforce_zdr_openai: true enforce_zdr_other: false enforce_zdr_xai: false - id: 550e8400-e29b-41d4-a716-446655440000 + id: '550e8400-e29b-41d4-a716-446655440000' ignored_models: null ignored_providers: null limit_usd: 100 - name: Production Guardrail - reset_interval: monthly + name: 'Production Guardrail' + reset_interval: 'monthly' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' properties: allowed_models: - description: Array of model canonical_slugs (immutable identifiers) + description: 'Array of model canonical_slugs (immutable identifiers)' example: - - openai/gpt-5.2-20251211 - - anthropic/claude-4.5-opus-20251124 - - deepseek/deepseek-r1-0528:free + - 'openai/gpt-5.2-20251211' + - 'anthropic/claude-4.5-opus-20251124' + - 'deepseek/deepseek-r1-0528:free' items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' allowed_providers: - description: List of allowed provider IDs + description: 'List of allowed provider IDs' example: - - openai - - anthropic - - google + - 'openai' + - 'anthropic' + - 'google' items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' content_filter_builtins: - description: >- - Builtin content filters applied to requests. Includes PII detectors and the regex-based prompt injection detector. + description: 'Builtin content filters applied to requests. Includes PII detectors and the regex-based prompt injection detector.' example: - - action: redact + - action: 'redact' label: '[EMAIL]' - slug: email + slug: 'email' items: $ref: '#/components/schemas/ContentFilterBuiltinEntry' - nullable: true - type: array + type: + - 'array' + - 'null' content_filters: - description: Custom regex content filters applied to request messages + description: 'Custom regex content filters applied to request messages' example: - - action: redact + - action: 'redact' label: '[API_KEY]' - pattern: \b(sk-[a-zA-Z0-9]{48})\b + pattern: '\b(sk-[a-zA-Z0-9]{48})\b' items: $ref: '#/components/schemas/ContentFilterEntry' - nullable: true - type: array + type: + - 'array' + - 'null' created_at: - description: ISO 8601 timestamp of when the guardrail was created + description: 'ISO 8601 timestamp of when the guardrail was created' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' description: - description: Description of the guardrail - example: Guardrail for production environment - nullable: true - type: string + description: 'Description of the guardrail' + example: 'Guardrail for production environment' + type: + - 'string' + - 'null' enforce_zdr: deprecated: true - description: >- - Deprecated. Use enforce_zdr_anthropic, enforce_zdr_openai, enforce_zdr_google, enforce_zdr_xai, and enforce_zdr_other instead. When provided, its value is copied into any of those per-provider fields that are not explicitly specified on the request. + description: 'Deprecated. Use enforce_zdr_anthropic, enforce_zdr_openai, enforce_zdr_google, enforce_zdr_xai, and enforce_zdr_other instead. When provided, its value is copied into any of those per-provider fields that are not explicitly specified on the request.' example: false - nullable: true - type: boolean + type: + - 'boolean' + - 'null' enforce_zdr_anthropic: - description: Whether to enforce zero data retention for Anthropic models. Falls back to enforce_zdr when not provided. + description: 'Whether to enforce zero data retention for Anthropic models. Falls back to enforce_zdr when not provided.' example: false - nullable: true - type: boolean + type: + - 'boolean' + - 'null' enforce_zdr_google: - description: Whether to enforce zero data retention for Google models. Falls back to enforce_zdr when not provided. + description: 'Whether to enforce zero data retention for Google models. Falls back to enforce_zdr when not provided.' example: false - nullable: true - type: boolean + type: + - 'boolean' + - 'null' enforce_zdr_openai: - description: Whether to enforce zero data retention for OpenAI models. Falls back to enforce_zdr when not provided. + description: 'Whether to enforce zero data retention for OpenAI models. Falls back to enforce_zdr when not provided.' example: false - nullable: true - type: boolean + type: + - 'boolean' + - 'null' enforce_zdr_other: - description: >- - Whether to enforce zero data retention for models that are not from Anthropic, OpenAI, Google, or xAI. Falls back to enforce_zdr when not provided. + description: 'Whether to enforce zero data retention for models that are not from Anthropic, OpenAI, Google, or xAI. Falls back to enforce_zdr when not provided.' example: false - nullable: true - type: boolean + type: + - 'boolean' + - 'null' enforce_zdr_xai: - description: Whether to enforce zero data retention for xAI models. Falls back to enforce_zdr when not provided. + description: 'Whether to enforce zero data retention for xAI models. Falls back to enforce_zdr when not provided.' example: false - nullable: true - type: boolean + type: + - 'boolean' + - 'null' id: - description: Unique identifier for the guardrail - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string + description: 'Unique identifier for the guardrail' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' ignored_models: - description: Array of model canonical_slugs to exclude from routing + description: 'Array of model canonical_slugs to exclude from routing' example: - - openai/gpt-4o-mini-2024-07-18 + - 'openai/gpt-4o-mini-2024-07-18' items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' ignored_providers: - description: List of provider IDs to exclude from routing + description: 'List of provider IDs to exclude from routing' example: - - azure + - 'azure' items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' limit_usd: - description: Spending limit in USD + description: 'Spending limit in USD' example: 100 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' name: - description: Name of the guardrail - example: Production Guardrail - type: string + description: 'Name of the guardrail' + example: 'Production Guardrail' + type: 'string' reset_interval: $ref: '#/components/schemas/GuardrailInterval' updated_at: - description: ISO 8601 timestamp of when the guardrail was last updated + description: 'ISO 8601 timestamp of when the guardrail was last updated' example: '2025-08-24T15:45:00Z' - nullable: true - type: string + type: + - 'string' + - 'null' workspace_id: - description: The workspace ID this guardrail belongs to. - example: 0df9e665-d932-5740-b2c7-b52af166bc11 - type: string - required: - - id - - name - - created_at - - workspace_id - type: object + description: 'The workspace ID this guardrail belongs to.' + example: '0df9e665-d932-5740-b2c7-b52af166bc11' + type: 'string' + required: + - 'id' + - 'name' + - 'created_at' + - 'workspace_id' + type: 'object' GuardrailInterval: - description: Interval at which the limit resets (daily, weekly, monthly) + description: 'Interval at which the limit resets (daily, weekly, monthly)' enum: - - daily - - weekly - - monthly + - 'daily' + - 'weekly' + - 'monthly' - null - example: monthly - nullable: true - type: string + example: 'monthly' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow ImageConfig: additionalProperties: anyOf: - - type: string - - format: double - type: number - - items: - nullable: true - type: array - description: >- - Provider-specific image configuration options. Keys and values vary by model/provider. See https://openrouter.ai/docs/guides/overview/multimodal/image-generation for more details. + - type: 'string' + - format: 'double' + type: 'number' + - items: {} + type: 'array' + description: 'Provider-specific image configuration options. Keys and values vary by model/provider. See https://openrouter.ai/docs/guides/overview/multimodal/image-generation for more details.' example: aspect_ratio: '16:9' - quality: high - type: object + quality: 'high' + type: 'object' ImageEndpoint: - description: An endpoint that serves a given image model. + description: 'An endpoint that serves a given image model.' example: allowed_passthrough_parameters: [] pricing: - - billable: output_image + - billable: 'output_image' cost_usd: 0.05 - unit: image - provider_name: Bytedance - provider_slug: bytedance - provider_tag: bytedance + unit: 'image' + provider_name: 'Bytedance' + provider_slug: 'bytedance' + provider_tag: 'bytedance' supported_parameters: resolution: - type: enum + type: 'enum' values: - - 1K - - 2K - - 4K + - '1K' + - '2K' + - '4K' seed: - type: boolean + type: 'boolean' supports_streaming: false properties: allowed_passthrough_parameters: - description: Provider-specific options accepted under provider.options[provider_slug]. + description: 'Provider-specific options accepted under provider.options[provider_slug].' example: [] items: - type: string - type: array + type: 'string' + type: 'array' pricing: - description: Billable pricing lines for this endpoint. + description: 'Billable pricing lines for this endpoint.' example: - - billable: output_image + - billable: 'output_image' cost_usd: 0.05 - unit: image + unit: 'image' items: $ref: '#/components/schemas/ImagePricingEntry' - type: array + type: 'array' provider_name: - description: Provider display name - example: Bytedance - type: string + description: 'Provider display name' + example: 'Bytedance' + type: 'string' provider_slug: - description: Provider slug - example: bytedance - type: string + description: 'Provider slug' + example: 'bytedance' + type: 'string' provider_tag: - description: Provider tag for request-side selection - example: bytedance - nullable: true - type: string + description: 'Provider tag for request-side selection' + example: 'bytedance' + type: + - 'string' + - 'null' supported_parameters: allOf: - $ref: '#/components/schemas/SupportedParameters' - - description: The definitive set of parameters this endpoint accepts for this model. + - description: 'The definitive set of parameters this endpoint accepts for this model.' supports_streaming: description: 'Whether this endpoint supports native SSE streaming (`stream: true` in the request).' example: false - type: boolean - required: - - provider_name - - provider_slug - - provider_tag - - supported_parameters - - allowed_passthrough_parameters - - supports_streaming - - pricing - type: object + type: 'boolean' + required: + - 'provider_name' + - 'provider_slug' + - 'provider_tag' + - 'supported_parameters' + - 'allowed_passthrough_parameters' + - 'supports_streaming' + - 'pricing' + type: 'object' ImageGenCallCompletedEvent: allOf: - $ref: '#/components/schemas/OpenAIResponsesImageGenCallCompleted' - properties: {} - type: object - description: Image generation call completed + type: 'object' + description: 'Image generation call completed' example: - item_id: call-123 + item_id: 'call-123' output_index: 0 sequence_number: 4 - type: response.image_generation_call.completed + type: 'response.image_generation_call.completed' ImageGenCallGeneratingEvent: allOf: - $ref: '#/components/schemas/OpenAIResponsesImageGenCallGenerating' - properties: {} - type: object - description: Image generation call is generating + type: 'object' + description: 'Image generation call is generating' example: - item_id: call-123 + item_id: 'call-123' output_index: 0 sequence_number: 2 - type: response.image_generation_call.generating + type: 'response.image_generation_call.generating' ImageGenCallInProgressEvent: allOf: - $ref: '#/components/schemas/OpenAIResponsesImageGenCallInProgress' - properties: {} - type: object - description: Image generation call in progress + type: 'object' + description: 'Image generation call in progress' example: - item_id: call-123 + item_id: 'call-123' output_index: 0 sequence_number: 1 - type: response.image_generation_call.in_progress + type: 'response.image_generation_call.in_progress' ImageGenCallPartialImageEvent: allOf: - $ref: '#/components/schemas/OpenAIResponsesImageGenCallPartialImage' - properties: {} - type: object - description: Image generation call with partial image + type: 'object' + description: 'Image generation call with partial image' example: - item_id: call-123 + item_id: 'call-123' output_index: 0 - partial_image_b64: base64encodedimage... + partial_image_b64: 'base64encodedimage...' partial_image_index: 0 sequence_number: 3 - type: response.image_generation_call.partial_image + type: 'response.image_generation_call.partial_image' ImageGenCompletedEvent: - description: Emitted when generation completes and the final image is available + description: 'Emitted when generation completes and the final image is available' example: - b64_json: + b64_json: '' created: 1748372400 - type: image_generation.completed + type: 'image_generation.completed' usage: completion_tokens: 4175 cost: 0.04 @@ -9579,69 +9713,63 @@ components: total_tokens: 4175 properties: b64_json: - description: Base64-encoded final image data - type: string + description: 'Base64-encoded final image data' + type: 'string' created: - description: Unix timestamp (seconds) when the image was generated - type: integer + description: 'Unix timestamp (seconds) when the image was generated' + type: 'integer' media_type: - description: >- - Media type (MIME type) of the image, e.g. `image/png`, `image/jpeg`, `image/webp`, `image/svg+xml`. May be omitted if the format could not be determined. - example: image/png - type: string + description: 'Media type (MIME type) of the image, e.g. `image/png`, `image/jpeg`, `image/webp`, `image/svg+xml`. May be omitted if the format could not be determined.' + example: 'image/png' + type: 'string' type: - description: The event type + description: 'The event type' enum: - - image_generation.completed - type: string + - 'image_generation.completed' + type: 'string' usage: $ref: '#/components/schemas/ImageGenerationUsage' required: - - type - - b64_json - - created - type: object + - 'type' + - 'b64_json' + - 'created' + type: 'object' ImageGenerationProviderPreferences: - description: Provider routing preferences and provider-specific passthrough configuration. + description: 'Provider routing preferences and provider-specific passthrough configuration.' example: allow_fallbacks: false only: - - google-ai-studio + - 'google-ai-studio' properties: allow_fallbacks: - description: > - Whether to allow backup providers to serve requests - - - true: (default) when the primary provider (or your custom providers in "order") is unavailable, use the next best provider. - - - false: use only the primary/custom provider, and return the upstream error if it's unavailable. - - nullable: true - type: boolean + description: "Whether to allow backup providers to serve requests\n- true: (default) when the primary provider (or your custom providers in \"order\") is unavailable, use the next best provider.\n- false: use only the primary/custom provider, and return the upstream error if it's unavailable.\n" + type: + - 'boolean' + - 'null' ignore: - description: >- - List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored provider settings for this request. + description: 'List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored provider settings for this request.' example: - - openai - - anthropic + - 'openai' + - 'anthropic' items: anyOf: - $ref: '#/components/schemas/ProviderName' - - type: string - nullable: true - type: array + - type: 'string' + type: + - 'array' + - 'null' only: - description: >- - List of provider slugs to allow. If provided, this list is merged with your account-wide allowed provider settings for this request. + description: 'List of provider slugs to allow. If provided, this list is merged with your account-wide allowed provider settings for this request.' example: - - openai - - anthropic + - 'openai' + - 'anthropic' items: anyOf: - $ref: '#/components/schemas/ProviderName' - - type: string - nullable: true - type: array + - type: 'string' + type: + - 'array' + - 'null' options: allOf: - $ref: '#/components/schemas/ProviderOptions' @@ -9650,34 +9778,33 @@ components: guidance: 3 steps: 40 order: - description: >- - An ordered list of provider slugs. The router will attempt to use the first provider in the subset of this list that supports your requested model, and fall back to the next if it is unavailable. If no providers are available, the request will fail with an error message. + description: 'An ordered list of provider slugs. The router will attempt to use the first provider in the subset of this list that supports your requested model, and fall back to the next if it is unavailable. If no providers are available, the request will fail with an error message.' example: - - openai - - anthropic + - 'openai' + - 'anthropic' items: anyOf: - $ref: '#/components/schemas/ProviderName' - - type: string - nullable: true - type: array + - type: 'string' + type: + - 'array' + - 'null' sort: anyOf: - $ref: '#/components/schemas/ProviderSort' - $ref: '#/components/schemas/ProviderSortConfig' - - nullable: true - description: >- - The sorting strategy to use for this request, if "order" is not specified. When set, no load balancing is performed. - example: price - type: object + - type: 'null' + description: 'The sorting strategy to use for this request, if "order" is not specified. When set, no load balancing is performed.' + example: 'price' + type: 'object' ImageGenerationRequest: - description: Image generation request input + description: 'Image generation request input' example: - model: bytedance-seed/seedream-4.5 - prompt: a red panda astronaut floating in space, studio lighting + model: 'bytedance-seed/seedream-4.5' + prompt: 'a red panda astronaut floating in space, studio lighting' properties: aspect_ratio: - description: Normalized aspect ratio of the generated image. Providers clamp to their supported subset. + description: 'Normalized aspect ratio of the generated image. Providers clamp to their supported subset.' enum: - '1:1' - '1:2' @@ -9695,103 +9822,99 @@ components: - '9:16' - '16:9' - '9:19.5' - - 19.5:9 + - '19.5:9' - '9:20' - '20:9' - '9:21' - '21:9' - - auto + - 'auto' example: '16:9' - type: string + type: 'string' x-speakeasy-unknown-values: allow background: - description: Background treatment. `transparent` requires an output_format that supports alpha (png or webp). + description: 'Background treatment. `transparent` requires an output_format that supports alpha (png or webp).' enum: - - auto - - transparent - - opaque - example: auto - type: string + - 'auto' + - 'transparent' + - 'opaque' + example: 'auto' + type: 'string' x-speakeasy-unknown-values: allow input_references: - description: Reference images to guide image-to-image generation, as base64 data URLs or HTTP(S) URLs. + description: 'Reference images to guide image-to-image generation, as base64 data URLs or HTTP(S) URLs.' items: $ref: '#/components/schemas/ContentPartImage' maxItems: 16 - type: array + type: 'array' model: - description: The image generation model to use - example: bytedance-seed/seedream-4.5 - type: string + description: 'The image generation model to use' + example: 'bytedance-seed/seedream-4.5' + type: 'string' 'n': - description: Number of images to generate (1-10). Providers that only support single-image generation reject n > 1. + description: 'Number of images to generate (1-10). Providers that only support single-image generation reject n > 1.' example: 1 - type: integer + type: 'integer' output_compression: - description: Compression level (0-100) for webp/jpeg output. Ignored for png and by providers without a compression knob. + description: 'Compression level (0-100) for webp/jpeg output. Ignored for png and by providers without a compression knob.' example: 100 - type: integer + type: 'integer' output_format: - description: >- - Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`. - enum: - - png - - jpeg - - webp - - svg - example: png - type: string + description: 'Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`.' + enum: + - 'png' + - 'jpeg' + - 'webp' + - 'svg' + example: 'png' + type: 'string' x-speakeasy-unknown-values: allow prompt: - description: Text description of the desired image - example: a red panda astronaut floating in space, studio lighting + description: 'Text description of the desired image' + example: 'a red panda astronaut floating in space, studio lighting' minLength: 1 - type: string + type: 'string' provider: $ref: '#/components/schemas/ImageGenerationProviderPreferences' quality: - description: Rendering quality. Providers without a quality knob ignore this. - enum: - - auto - - low - - medium - - high - example: high - type: string + description: 'Rendering quality. Providers without a quality knob ignore this.' + enum: + - 'auto' + - 'low' + - 'medium' + - 'high' + example: 'high' + type: 'string' x-speakeasy-unknown-values: allow resolution: - description: Normalized resolution tier of the generated image. Concrete pixel dimensions are derived per-provider. + description: 'Normalized resolution tier of the generated image. Concrete pixel dimensions are derived per-provider.' enum: - '512' - - 1K - - 2K - - 4K - example: 2K - type: string + - '1K' + - '2K' + - '4K' + example: '2K' + type: 'string' x-speakeasy-unknown-values: allow seed: - description: >- - If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers. - type: integer + description: 'If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers.' + type: 'integer' size: - description: >- - Optional. A convenience shorthand for output dimensions — pass a tier ("2K", "4K") or explicit pixels ("2048x2048") and we normalize it to the right dimensions for the chosen provider. A tier size is equivalent to setting `resolution` and combines with `aspect_ratio`. An explicit pixel size is authoritative: a mismatched `resolution` or `aspect_ratio` alongside it is rejected with a 400. - example: 2K - type: string + description: 'Optional. A convenience shorthand for output dimensions — pass a tier ("2K", "4K") or explicit pixels ("2048x2048") and we normalize it to the right dimensions for the chosen provider. A tier size is equivalent to setting `resolution` and combines with `aspect_ratio`. An explicit pixel size is authoritative: a mismatched `resolution` or `aspect_ratio` alongside it is rejected with a 400.' + example: '2K' + type: 'string' stream: - description: >- - If true, partial images are streamed as SSE events as they become available. Only supported by providers with native streaming (currently OpenAI). Non-streaming providers ignore this flag and return a buffered response. - type: boolean + description: 'If true, partial images are streamed as SSE events as they become available. Only supported by providers with native streaming (currently OpenAI). Non-streaming providers ignore this flag and return a buffered response.' + type: 'boolean' required: - - model - - prompt - type: object + - 'model' + - 'prompt' + type: 'object' ImageGenerationResponse: - description: Image generation response + description: 'Image generation response' example: created: 1748372400 data: - - b64_json: + - b64_json: '' usage: completion_tokens: 4175 cost: 0.04 @@ -9799,145 +9922,143 @@ components: total_tokens: 4175 properties: created: - description: Unix timestamp (seconds) when the image was generated + description: 'Unix timestamp (seconds) when the image was generated' example: 1748372400 - type: integer + type: 'integer' data: - description: Generated images + description: 'Generated images' items: properties: b64_json: - description: Base64-encoded image bytes - type: string + description: 'Base64-encoded image bytes' + type: 'string' media_type: - description: >- - Media type (MIME type) of the image, e.g. `image/png`, `image/jpeg`, `image/webp`, `image/svg+xml`. May be omitted if the format could not be determined. - example: image/png - type: string + description: 'Media type (MIME type) of the image, e.g. `image/png`, `image/jpeg`, `image/webp`, `image/svg+xml`. May be omitted if the format could not be determined.' + example: 'image/png' + type: 'string' required: - - b64_json - type: object - type: array + - 'b64_json' + type: 'object' + type: 'array' usage: $ref: '#/components/schemas/ImageGenerationUsage' required: - - created - - data - type: object + - 'created' + - 'data' + type: 'object' ImageGenerationServerTool: - description: Image generation tool configuration + description: 'Image generation tool configuration' example: - quality: high - type: image_generation + quality: 'high' + type: 'image_generation' properties: background: enum: - - transparent - - opaque - - auto - type: string + - 'transparent' + - 'opaque' + - 'auto' + type: 'string' x-speakeasy-unknown-values: allow input_fidelity: enum: - - high - - low + - 'high' + - 'low' - null - nullable: true - type: string + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow input_image_mask: properties: file_id: - type: string + type: 'string' image_url: - type: string - type: object + type: 'string' + type: 'object' model: - type: string + type: 'string' moderation: enum: - - auto - - low - type: string + - 'auto' + - 'low' + type: 'string' x-speakeasy-unknown-values: allow output_compression: - type: integer + type: 'integer' output_format: enum: - - png - - webp - - jpeg - type: string + - 'png' + - 'webp' + - 'jpeg' + type: 'string' x-speakeasy-unknown-values: allow partial_images: - type: integer + type: 'integer' quality: enum: - - low - - medium - - high - - auto - type: string + - 'low' + - 'medium' + - 'high' + - 'auto' + type: 'string' x-speakeasy-unknown-values: allow size: - type: string + type: 'string' type: enum: - - image_generation - type: string + - 'image_generation' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' ImageGenerationServerTool_OpenRouter: description: 'OpenRouter built-in server tool: generates images from text prompts using an image generation model' example: parameters: - model: openai/gpt-5-image - quality: high - size: 1024x1024 - type: openrouter:image_generation + model: 'openai/gpt-5-image' + quality: 'high' + size: '1024x1024' + type: 'openrouter:image_generation' properties: parameters: $ref: '#/components/schemas/ImageGenerationServerToolConfig' type: enum: - - openrouter:image_generation - type: string + - 'openrouter:image_generation' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' ImageGenerationServerToolConfig: additionalProperties: anyOf: - - type: string - - format: double - type: number - - items: - nullable: true - type: array - description: >- - Configuration for the openrouter:image_generation server tool. Accepts all image_config params (aspect_ratio, quality, size, background, output_format, output_compression, moderation, etc.) plus a model field. + - type: 'string' + - format: 'double' + type: 'number' + - items: {} + type: 'array' + description: 'Configuration for the openrouter:image_generation server tool. Accepts all image_config params (aspect_ratio, quality, size, background, output_format, output_compression, moderation, etc.) plus a model field.' example: aspect_ratio: '16:9' - model: openai/gpt-5-image - quality: high + model: 'openai/gpt-5-image' + quality: 'high' properties: model: - description: Which image generation model to use (e.g. "openai/gpt-5-image"). Defaults to "openai/gpt-5-image". - example: openai/gpt-5-image - type: string - type: object + description: 'Which image generation model to use (e.g. "openai/gpt-5-image"). Defaults to "openai/gpt-5-image".' + example: 'openai/gpt-5-image' + type: 'string' + type: 'object' ImageGenerationStatus: enum: - - in_progress - - completed - - generating - - failed - example: completed - type: string + - 'in_progress' + - 'completed' + - 'generating' + - 'failed' + example: 'completed' + type: 'string' x-speakeasy-unknown-values: allow ImageGenerationUsage: - description: Token and cost usage for the image generation request, when available + description: 'Token and cost usage for the image generation request, when available' example: completion_tokens: 4175 cost: 0.04 @@ -9947,403 +10068,419 @@ components: cache_creation: $ref: '#/components/schemas/AnthropicCacheCreation' completion_tokens: - description: The tokens generated - type: integer + description: 'The tokens generated' + type: 'integer' completion_tokens_details: - nullable: true properties: audio_tokens: - description: Tokens generated by the model for audio output. - nullable: true - type: integer + description: 'Tokens generated by the model for audio output.' + type: + - 'integer' + - 'null' image_tokens: - description: Tokens generated by the model for image output. - nullable: true - type: integer + description: 'Tokens generated by the model for image output.' + type: + - 'integer' + - 'null' reasoning_tokens: - description: Tokens generated by the model for reasoning. - nullable: true - type: integer - type: object + description: 'Tokens generated by the model for reasoning.' + type: + - 'integer' + - 'null' + type: + - 'object' + - 'null' cost: - description: Cost of the completion - format: double - nullable: true - type: number + description: 'Cost of the completion' + format: 'double' + type: + - 'number' + - 'null' cost_details: $ref: '#/components/schemas/CostDetails' is_byok: - description: Whether a request was made using a Bring Your Own Key configuration - type: boolean + description: 'Whether a request was made using a Bring Your Own Key configuration' + type: 'boolean' iterations: items: $ref: '#/components/schemas/AnthropicUsageIteration' - nullable: true - type: array + type: + - 'array' + - 'null' prompt_tokens: - description: Including images, input audio, and tools if any - type: integer + description: 'Including images, input audio, and tools if any' + type: 'integer' prompt_tokens_details: - description: Breakdown of tokens used in the prompt. - nullable: true + description: 'Breakdown of tokens used in the prompt.' properties: audio_tokens: - description: Tokens used for input audio. - nullable: true - type: integer + description: 'Tokens used for input audio.' + type: + - 'integer' + - 'null' cache_write_tokens: - description: Tokens written to cache. Only returned for models with explicit caching and cache write pricing. - nullable: true - type: integer + description: 'Tokens written to cache. Only returned for models with explicit caching and cache write pricing.' + type: + - 'integer' + - 'null' cached_tokens: - description: Tokens cached by the endpoint. - nullable: true - type: integer + description: 'Tokens cached by the endpoint.' + type: + - 'integer' + - 'null' file_tokens: - description: Tokens used for input files/documents. - nullable: true - type: integer + description: 'Tokens used for input files/documents.' + type: + - 'integer' + - 'null' video_tokens: - description: Tokens used for input video. - nullable: true - type: integer - type: object + description: 'Tokens used for input video.' + type: + - 'integer' + - 'null' + type: + - 'object' + - 'null' server_tool_use: - description: Usage for server-side tool execution (e.g., web search) - nullable: true + description: 'Usage for server-side tool execution (e.g., web search)' properties: tool_calls_executed: - description: Number of OpenRouter server tool calls that executed and produced a result. - nullable: true - type: integer + description: 'Number of OpenRouter server tool calls that executed and produced a result.' + type: + - 'integer' + - 'null' tool_calls_requested: - description: >- - Total number of OpenRouter server-orchestrated tool calls the model requested, across all tool types. Provider-native tools (e.g. native web search) are not counted here. - nullable: true - type: integer + description: 'Total number of OpenRouter server-orchestrated tool calls the model requested, across all tool types. Provider-native tools (e.g. native web search) are not counted here.' + type: + - 'integer' + - 'null' web_search_requests: - description: >- - Number of web searches performed by server-side tools. For server-orchestrated tool calls a web search is also counted in tool_calls_requested; provider-native web search may report web_search_requests only. Do not sum the two. - nullable: true - type: integer - type: object + description: 'Number of web searches performed by server-side tools. For server-orchestrated tool calls a web search is also counted in tool_calls_requested; provider-native web search may report web_search_requests only. Do not sum the two.' + type: + - 'integer' + - 'null' + type: + - 'object' + - 'null' service_tier: - description: The service tier used by the upstream provider for this request - nullable: true - type: string + description: 'The service tier used by the upstream provider for this request' + type: + - 'string' + - 'null' speed: $ref: '#/components/schemas/AnthropicSpeed' total_tokens: - description: Sum of the above two fields - type: integer + description: 'Sum of the above two fields' + type: 'integer' required: - - prompt_tokens - - completion_tokens - - total_tokens - type: object + - 'prompt_tokens' + - 'completion_tokens' + - 'total_tokens' + type: 'object' ImageGenPartialImageEvent: - description: Emitted when a partial image becomes available during streaming generation + description: 'Emitted when a partial image becomes available during streaming generation' example: - b64_json: + b64_json: '' partial_image_index: 0 - type: image_generation.partial_image + type: 'image_generation.partial_image' properties: b64_json: - description: Base64-encoded partial image data - type: string + description: 'Base64-encoded partial image data' + type: 'string' partial_image_index: - description: 0-based index indicating which partial image this is in the sequence - type: integer + description: '0-based index indicating which partial image this is in the sequence' + type: 'integer' type: - description: The event type + description: 'The event type' enum: - - image_generation.partial_image - type: string + - 'image_generation.partial_image' + type: 'string' required: - - type - - partial_image_index - - b64_json - type: object + - 'type' + - 'partial_image_index' + - 'b64_json' + type: 'object' ImageGenStreamErrorEvent: - description: Emitted when streaming generation fails after the SSE response starts + description: 'Emitted when streaming generation fails after the SSE response starts' example: error: - code: upstream_error - message: The upstream provider returned an error + code: 'upstream_error' + message: 'The upstream provider returned an error' param: null - type: provider_error - type: error + type: 'provider_error' + type: 'error' properties: error: - description: Provider error details + description: 'Provider error details' properties: code: - description: Provider error code, when supplied - nullable: true - type: string + description: 'Provider error code, when supplied' + type: + - 'string' + - 'null' message: - description: Provider error message - type: string + description: 'Provider error message' + type: 'string' param: - description: Request parameter associated with the error, when supplied - nullable: true - type: string + description: 'Request parameter associated with the error, when supplied' + type: + - 'string' + - 'null' type: - description: Provider error type, when supplied - nullable: true - type: string + description: 'Provider error type, when supplied' + type: + - 'string' + - 'null' required: - - message - type: object + - 'message' + type: 'object' type: - description: The event type + description: 'The event type' enum: - - error - type: string + - 'error' + type: 'string' required: - - type - - error - type: object + - 'type' + - 'error' + type: 'object' ImageGenTextChunkEvent: - description: Emitted when a text chunk becomes available during streaming generation of text-based formats (e.g. SVG) + description: 'Emitted when a text chunk becomes available during streaming generation of text-based formats (e.g. SVG)' example: - phase: content - text: - type: image_generation.text_chunk + phase: 'content' + text: '' + type: 'image_generation.text_chunk' properties: phase: - description: >- - The generation phase this chunk belongs to. `content` is the renderable output; `reasoning` and `draft` are intermediate provider phases. + description: 'The generation phase this chunk belongs to. `content` is the renderable output; `reasoning` and `draft` are intermediate provider phases.' enum: - - content - - reasoning - - draft - type: string + - 'content' + - 'reasoning' + - 'draft' + type: 'string' x-speakeasy-unknown-values: allow text: - description: A text fragment of the image being generated (e.g. partial SVG markup) - type: string + description: 'A text fragment of the image being generated (e.g. partial SVG markup)' + type: 'string' type: - description: The event type + description: 'The event type' enum: - - image_generation.text_chunk - type: string + - 'image_generation.text_chunk' + type: 'string' required: - - type - - text - - phase - type: object + - 'type' + - 'text' + - 'phase' + type: 'object' ImageInputModality: enum: - - text - - image - - file - - audio - - video - example: text - type: string + - 'text' + - 'image' + - 'file' + - 'audio' + - 'video' + example: 'text' + type: 'string' x-speakeasy-unknown-values: allow ImageModelArchitecture: example: input_modalities: - - text - - image + - 'text' + - 'image' output_modalities: - - image + - 'image' properties: input_modalities: - description: Supported input modalities + description: 'Supported input modalities' items: $ref: '#/components/schemas/ImageInputModality' - type: array + type: 'array' output_modalities: - description: Supported output modalities + description: 'Supported output modalities' items: $ref: '#/components/schemas/ImageOutputModality' - type: array + type: 'array' required: - - input_modalities - - output_modalities - type: object + - 'input_modalities' + - 'output_modalities' + type: 'object' ImageModelEndpointsResponse: - description: The full per-endpoint records for an image model. + description: 'The full per-endpoint records for an image model.' example: endpoints: - allowed_passthrough_parameters: [] pricing: - - billable: output_image + - billable: 'output_image' cost_usd: 0.05 - unit: image - provider_name: Bytedance - provider_slug: bytedance - provider_tag: bytedance + unit: 'image' + provider_name: 'Bytedance' + provider_slug: 'bytedance' + provider_tag: 'bytedance' supported_parameters: resolution: - type: enum + type: 'enum' values: - - 1K - - 2K - - 4K + - '1K' + - '2K' + - '4K' supports_streaming: false - id: bytedance-seed/seedream-4.5 + id: 'bytedance-seed/seedream-4.5' properties: endpoints: items: $ref: '#/components/schemas/ImageEndpoint' - type: array + type: 'array' id: - description: Model slug - example: bytedance-seed/seedream-4.5 - type: string + description: 'Model slug' + example: 'bytedance-seed/seedream-4.5' + type: 'string' required: - - id - - endpoints - type: object + - 'id' + - 'endpoints' + type: 'object' ImageModelListItem: - description: A single image model in the discovery listing. + description: 'A single image model in the discovery listing.' example: architecture: input_modalities: - - text - - image + - 'text' + - 'image' output_modalities: - - image + - 'image' created: 1692901234 - description: A text-to-image model. - endpoints: /api/v1/images/models/bytedance-seed/seedream-4.5/endpoints - id: bytedance-seed/seedream-4.5 - name: Seedream 4.5 + description: 'A text-to-image model.' + endpoints: '/api/v1/images/models/bytedance-seed/seedream-4.5/endpoints' + id: 'bytedance-seed/seedream-4.5' + name: 'Seedream 4.5' supported_parameters: resolution: - type: enum + type: 'enum' values: - - 1K - - 2K - - 4K + - '1K' + - '2K' + - '4K' seed: - type: boolean + type: 'boolean' supports_streaming: false properties: architecture: $ref: '#/components/schemas/ImageModelArchitecture' created: - description: Unix timestamp (seconds) of when the model was created + description: 'Unix timestamp (seconds) of when the model was created' example: 1692901234 - type: integer + type: 'integer' description: - example: A text-to-image model. - type: string + example: 'A text-to-image model.' + type: 'string' endpoints: - description: Relative URL to the full per-endpoint records for this model - example: /api/v1/images/models/bytedance-seed/seedream-4.5/endpoints - type: string + description: 'Relative URL to the full per-endpoint records for this model' + example: '/api/v1/images/models/bytedance-seed/seedream-4.5/endpoints' + type: 'string' id: - description: Model slug - example: bytedance-seed/seedream-4.5 - type: string + description: 'Model slug' + example: 'bytedance-seed/seedream-4.5' + type: 'string' name: - description: Display name - example: Seedream 4.5 - type: string + description: 'Display name' + example: 'Seedream 4.5' + type: 'string' supported_parameters: $ref: '#/components/schemas/SupportedParameters' supports_streaming: - description: >- - Whether any endpoint of this model supports native SSE streaming on the dedicated Image API (i.e. `stream: true` in the request). OR across endpoints. + description: 'Whether any endpoint of this model supports native SSE streaming on the dedicated Image API (i.e. `stream: true` in the request). OR across endpoints.' example: false - type: boolean - required: - - id - - name - - description - - created - - architecture - - supported_parameters - - supports_streaming - - endpoints - type: object + type: 'boolean' + required: + - 'id' + - 'name' + - 'description' + - 'created' + - 'architecture' + - 'supported_parameters' + - 'supports_streaming' + - 'endpoints' + type: 'object' ImageModelsListResponse: - description: List of image generation models. + description: 'List of image generation models.' example: data: - architecture: input_modalities: - - text + - 'text' output_modalities: - - image + - 'image' created: 1692901234 - description: A text-to-image model. - endpoints: /api/v1/images/models/bytedance-seed/seedream-4.5/endpoints - id: bytedance-seed/seedream-4.5 - name: Seedream 4.5 + description: 'A text-to-image model.' + endpoints: '/api/v1/images/models/bytedance-seed/seedream-4.5/endpoints' + id: 'bytedance-seed/seedream-4.5' + name: 'Seedream 4.5' supported_parameters: resolution: - type: enum + type: 'enum' values: - - 1K - - 2K - - 4K + - '1K' + - '2K' + - '4K' supports_streaming: false properties: data: items: $ref: '#/components/schemas/ImageModelListItem' - type: array + type: 'array' required: - - data - type: object + - 'data' + type: 'object' ImageOutputModality: enum: - - text - - image - - embeddings - - audio - - video - - rerank - - speech - - transcription - example: image - type: string + - 'text' + - 'image' + - 'embeddings' + - 'audio' + - 'video' + - 'rerank' + - 'speech' + - 'transcription' + example: 'image' + type: 'string' x-speakeasy-unknown-values: allow ImagePricingEntry: - description: One billable pricing line for an image provider. + description: 'One billable pricing line for an image provider.' example: - billable: output_image + billable: 'output_image' cost_usd: 0.05 - unit: image + unit: 'image' properties: billable: enum: - - output_image - - input_image - - input_font - - input_reference - - input_text - type: string + - 'output_image' + - 'input_image' + - 'input_font' + - 'input_reference' + - 'input_text' + type: 'string' x-speakeasy-unknown-values: allow cost_usd: - format: double - type: number + format: 'double' + type: 'number' unit: enum: - - image - - megapixel - - token - type: string + - 'image' + - 'megapixel' + - 'token' + type: 'string' x-speakeasy-unknown-values: allow variant: - type: string + type: 'string' required: - - billable - - unit - - cost_usd - type: object + - 'billable' + - 'unit' + - 'cost_usd' + type: 'object' ImageStreamingResponse: example: data: - b64_json: + b64_json: '' partial_image_index: 0 - type: image_generation.partial_image + type: 'image_generation.partial_image' properties: data: anyOf: @@ -10352,179 +10489,188 @@ components: - $ref: '#/components/schemas/ImageGenCompletedEvent' - $ref: '#/components/schemas/ImageGenStreamErrorEvent' required: - - data - type: object + - 'data' + type: 'object' IncompleteDetails: example: - reason: max_output_tokens - nullable: true + reason: 'max_output_tokens' properties: reason: enum: - - max_output_tokens - - content_filter - type: string + - 'max_output_tokens' + - 'content_filter' + type: 'string' x-speakeasy-unknown-values: allow - type: object + type: + - 'object' + - 'null' IncompleteEvent: - description: Event emitted when a response is incomplete + description: 'Event emitted when a response is incomplete' example: response: + completed_at: null created_at: 1704067200 error: null - id: resp-abc123 + frequency_penalty: null + id: 'resp-abc123' incomplete_details: null instructions: null max_output_tokens: null metadata: null - model: gpt-4 - object: response + model: 'gpt-4' + object: 'response' output: [] parallel_tool_calls: true - status: incomplete + presence_penalty: null + status: 'incomplete' temperature: null - tool_choice: auto + tool_choice: 'auto' tools: [] top_p: null sequence_number: 5 - type: response.incomplete + type: 'response.incomplete' properties: response: $ref: '#/components/schemas/BaseResponsesResult' sequence_number: - type: integer + type: 'integer' type: enum: - - response.incomplete - type: string + - 'response.incomplete' + type: 'string' required: - - type - - response - - sequence_number - type: object + - 'type' + - 'response' + - 'sequence_number' + type: 'object' InProgressEvent: - description: Event emitted when a response is in progress + description: 'Event emitted when a response is in progress' example: response: + completed_at: null created_at: 1704067200 error: null - id: resp-abc123 + frequency_penalty: null + id: 'resp-abc123' incomplete_details: null instructions: null max_output_tokens: null metadata: null - model: gpt-4 - object: response + model: 'gpt-4' + object: 'response' output: [] parallel_tool_calls: true - status: in_progress + presence_penalty: null + status: 'in_progress' temperature: null - tool_choice: auto + tool_choice: 'auto' tools: [] top_p: null sequence_number: 1 - type: response.in_progress + type: 'response.in_progress' properties: response: $ref: '#/components/schemas/BaseResponsesResult' sequence_number: - type: integer + type: 'integer' type: enum: - - response.in_progress - type: string + - 'response.in_progress' + type: 'string' required: - - type - - response - - sequence_number - type: object + - 'type' + - 'response' + - 'sequence_number' + type: 'object' InputAudio: - description: Audio input content item + description: 'Audio input content item' example: input_audio: - data: SGVsbG8gV29ybGQ= - format: mp3 - type: input_audio + data: 'SGVsbG8gV29ybGQ=' + format: 'mp3' + type: 'input_audio' properties: input_audio: properties: data: - type: string + type: 'string' format: enum: - - mp3 - - wav - type: string + - 'mp3' + - 'wav' + type: 'string' x-speakeasy-unknown-values: allow required: - - data - - format - type: object + - 'data' + - 'format' + type: 'object' type: enum: - - input_audio - type: string + - 'input_audio' + type: 'string' required: - - type - - input_audio - type: object + - 'type' + - 'input_audio' + type: 'object' InputFile: - description: File input content item + description: 'File input content item' example: - file_id: file-abc123 - filename: document.pdf - type: input_file + file_id: 'file-abc123' + filename: 'document.pdf' + type: 'input_file' properties: file_data: - type: string + type: 'string' file_id: - nullable: true - type: string + type: + - 'string' + - 'null' file_url: - type: string + type: 'string' filename: - type: string + type: 'string' type: enum: - - input_file - type: string + - 'input_file' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' InputImage: - description: Image input content item + description: 'Image input content item' example: - detail: auto - image_url: https://example.com/image.jpg - type: input_image + detail: 'auto' + image_url: 'https://example.com/image.jpg' + type: 'input_image' properties: detail: enum: - - auto - - high - - low - - original - type: string + - 'auto' + - 'high' + - 'low' + - 'original' + type: 'string' x-speakeasy-unknown-values: allow image_url: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - input_image - type: string + - 'input_image' + type: 'string' required: - - type - - detail - type: object + - 'type' + - 'detail' + type: 'object' InputMessageItem: example: content: - - text: Hello, how are you? - type: input_text - id: msg-abc123 - role: user - type: message + - text: 'Hello, how are you?' + type: 'input_text' + id: 'msg-abc123' + role: 'user' + type: 'message' properties: content: items: @@ -10533,67 +10679,67 @@ components: - allOf: - $ref: '#/components/schemas/InputImage' - properties: {} - type: object - description: Image input content item + type: 'object' + description: 'Image input content item' example: - detail: auto - image_url: https://example.com/image.jpg - type: input_image + detail: 'auto' + image_url: 'https://example.com/image.jpg' + type: 'input_image' - $ref: '#/components/schemas/InputFile' - $ref: '#/components/schemas/InputAudio' - $ref: '#/components/schemas/InputVideo' - nullable: true - type: array + type: + - 'array' + - 'null' id: - type: string + type: 'string' role: anyOf: - enum: - - user - type: string + - 'user' + type: 'string' - enum: - - system - type: string + - 'system' + type: 'string' - enum: - - developer - type: string + - 'developer' + type: 'string' type: enum: - - message - type: string + - 'message' + type: 'string' required: - - role - type: object + - 'role' + type: 'object' InputModality: enum: - - text - - image - - file - - audio - - video - example: text - type: string + - 'text' + - 'image' + - 'file' + - 'audio' + - 'video' + example: 'text' + type: 'string' x-speakeasy-unknown-values: allow InputReference: - description: >- - A reference asset used to guide video generation. Image references are supported by all providers; audio and video references are only honored by providers that support them (currently BytePlus Seedance 2.0). + description: 'A reference asset used to guide video generation. Image references are supported by all providers; audio and video references are only honored by providers that support them (currently BytePlus Seedance 2.0).' discriminator: mapping: audio_url: '#/components/schemas/ContentPartAudio' image_url: '#/components/schemas/ContentPartImage' video_url: '#/components/schemas/ContentPartVideo' - propertyName: type + propertyName: 'type' example: image_url: - url: https://example.com/image.png - type: image_url + url: 'https://example.com/image.png' + type: 'image_url' oneOf: - $ref: '#/components/schemas/ContentPartImage' - $ref: '#/components/schemas/ContentPartAudio' - $ref: '#/components/schemas/ContentPartVideo' Inputs: anyOf: - - type: string + - type: 'string' - items: anyOf: - $ref: '#/components/schemas/ReasoningItem' @@ -10612,42 +10758,43 @@ components: anyOf: - $ref: '#/components/schemas/ResponseOutputText' - $ref: '#/components/schemas/OpenAIResponsesRefusalContent' - type: array - - type: string - - nullable: true - type: object - description: An output message item + type: 'array' + - type: 'string' + - type: 'null' + type: 'object' + description: 'An output message item' example: content: - annotations: [] - text: Hello! How can I help you? - type: output_text - id: msg-123 - role: assistant - status: completed - type: message + text: 'Hello! How can I help you?' + type: 'output_text' + id: 'msg-123' + role: 'assistant' + status: 'completed' + type: 'message' - allOf: - $ref: '#/components/schemas/OutputReasoningItem' - properties: summary: items: $ref: '#/components/schemas/ReasoningSummaryText' - nullable: true - type: array - type: object - description: An output item containing reasoning + type: + - 'array' + - 'null' + type: 'object' + description: 'An output item containing reasoning' example: content: - - text: First, we analyze the problem... - type: reasoning_text - format: anthropic-claude-v1 - id: reasoning-123 - signature: EvcBCkgIChABGAIqQKkSDbRuVEQUk9qN1odC098l9SEj... - status: completed + - text: 'First, we analyze the problem...' + type: 'reasoning_text' + format: 'anthropic-claude-v1' + id: 'reasoning-123' + signature: 'EvcBCkgIChABGAIqQKkSDbRuVEQUk9qN1odC098l9SEj...' + status: 'completed' summary: - - text: Analyzed the problem and found the optimal solution. - type: summary_text - type: reasoning + - text: 'Analyzed the problem and found the optimal solution.' + type: 'summary_text' + type: 'reasoning' - $ref: '#/components/schemas/OutputFunctionCallItem' - $ref: '#/components/schemas/OutputCustomToolCallItem' - $ref: '#/components/schemas/OutputWebSearchCallItem' @@ -10688,239 +10835,241 @@ components: - $ref: '#/components/schemas/ItemReferenceItem' - $ref: '#/components/schemas/AdditionalToolsItem' - $ref: '#/components/schemas/AgentMessageItem' - type: array - description: Input for a response request - can be a string or array of items + type: 'array' + description: 'Input for a response request - can be a string or array of items' example: - - content: What is the weather today? - role: user + - content: 'What is the weather today?' + role: 'user' InputText: - description: Text input content item + description: 'Text input content item' example: - text: Hello, how can I help you? - type: input_text + text: 'Hello, how can I help you?' + type: 'input_text' properties: prompt_cache_breakpoint: $ref: '#/components/schemas/PromptCacheBreakpoint' text: - type: string + type: 'string' type: enum: - - input_text - type: string + - 'input_text' + type: 'string' required: - - type - - text - type: object + - 'type' + - 'text' + type: 'object' InputVideo: - description: Video input content item + description: 'Video input content item' example: - type: input_video - video_url: https://example.com/video.mp4 + type: 'input_video' + video_url: 'https://example.com/video.mp4' properties: type: enum: - - input_video - type: string + - 'input_video' + type: 'string' video_url: - description: A base64 data URL or remote URL that resolves to a video file - type: string + description: 'A base64 data URL or remote URL that resolves to a video file' + type: 'string' required: - - type - - video_url - type: object + - 'type' + - 'video_url' + type: 'object' InstructType: - description: Instruction format type + description: 'Instruction format type' enum: - - none - - airoboros - - alpaca - - alpaca-modif - - chatml - - claude - - code-llama - - gemma - - llama2 - - llama3 - - mistral - - nemotron - - neural - - openchat - - phi3 - - rwkv - - vicuna - - zephyr - - deepseek-r1 - - deepseek-v3.1 - - qwq - - qwen3 + - 'none' + - 'airoboros' + - 'alpaca' + - 'alpaca-modif' + - 'chatml' + - 'claude' + - 'code-llama' + - 'gemma' + - 'llama2' + - 'llama3' + - 'mistral' + - 'nemotron' + - 'neural' + - 'openchat' + - 'phi3' + - 'rwkv' + - 'vicuna' + - 'zephyr' + - 'deepseek-r1' + - 'deepseek-v3.1' + - 'qwq' + - 'qwen3' - null - example: chatml - nullable: true - type: string + example: 'chatml' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow InternalServerResponse: - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' properties: error: $ref: '#/components/schemas/InternalServerResponseErrorData' openrouter_metadata: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' user_id: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - error - type: object + - 'error' + type: 'object' InternalServerResponseErrorData: - description: Error data for InternalServerResponse + description: 'Error data for InternalServerResponse' example: code: 500 - message: Internal Server Error + message: 'Internal Server Error' properties: code: - type: integer + type: 'integer' message: - type: string + type: 'string' metadata: - additionalProperties: - nullable: true - nullable: true - type: object - required: - - code - - message - type: object + additionalProperties: {} + type: + - 'object' + - 'null' + required: + - 'code' + - 'message' + type: 'object' ItemReferenceItem: - description: A reference to a previous response item by ID + description: 'A reference to a previous response item by ID' example: - id: msg-abc123 - type: item_reference + id: 'msg-abc123' + type: 'item_reference' properties: id: - type: string + type: 'string' type: enum: - - item_reference - type: string + - 'item_reference' + type: 'string' required: - - type - - id - type: object + - 'type' + - 'id' + type: 'object' KeyAssignment: example: - assigned_by: user_abc123 + assigned_by: 'user_abc123' created_at: '2025-08-24T10:30:00Z' - guardrail_id: 550e8400-e29b-41d4-a716-446655440001 - id: 550e8400-e29b-41d4-a716-446655440000 - key_hash: c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93 - key_label: prod-key - key_name: Production Key + guardrail_id: '550e8400-e29b-41d4-a716-446655440001' + id: '550e8400-e29b-41d4-a716-446655440000' + key_hash: 'c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93' + key_label: 'prod-key' + key_name: 'Production Key' properties: assigned_by: - description: User ID of who made the assignment - example: user_abc123 - nullable: true - type: string + description: 'User ID of who made the assignment' + example: 'user_abc123' + type: + - 'string' + - 'null' created_at: - description: ISO 8601 timestamp of when the assignment was created + description: 'ISO 8601 timestamp of when the assignment was created' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' guardrail_id: - description: ID of the guardrail - example: 550e8400-e29b-41d4-a716-446655440001 - format: uuid - type: string + description: 'ID of the guardrail' + example: '550e8400-e29b-41d4-a716-446655440001' + format: 'uuid' + type: 'string' id: - description: Unique identifier for the assignment - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string + description: 'Unique identifier for the assignment' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' key_hash: - description: Hash of the assigned API key - example: c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93 - type: string + description: 'Hash of the assigned API key' + example: 'c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93' + type: 'string' key_label: - description: Label of the API key - example: prod-key - type: string + description: 'Label of the API key' + example: 'prod-key' + type: 'string' key_name: - description: Name of the API key - example: Production Key - type: string - required: - - id - - key_hash - - guardrail_id - - key_name - - key_label - - assigned_by - - created_at - type: object + description: 'Name of the API key' + example: 'Production Key' + type: 'string' + required: + - 'id' + - 'key_hash' + - 'guardrail_id' + - 'key_name' + - 'key_label' + - 'assigned_by' + - 'created_at' + type: 'object' Legacy_ChatContentVideo: deprecated: true - description: Video input content part (legacy format - deprecated) + description: 'Video input content part (legacy format - deprecated)' example: - type: input_video + type: 'input_video' video_url: - url: https://example.com/video.mp4 + url: 'https://example.com/video.mp4' properties: type: enum: - - input_video - type: string + - 'input_video' + type: 'string' video_url: $ref: '#/components/schemas/Legacy_ChatContentVideoInput' required: - - type - - video_url - type: object + - 'type' + - 'video_url' + type: 'object' Legacy_ChatContentVideoInput: - description: Video input object + description: 'Video input object' example: - url: https://example.com/video.mp4 + url: 'https://example.com/video.mp4' properties: url: description: 'URL of the video (data: URLs supported)' - type: string + type: 'string' required: - - url - type: object + - 'url' + type: 'object' Legacy_WebSearchServerTool: - description: Web search tool configuration + description: 'Web search tool configuration' example: - engine: auto + engine: 'auto' filters: allowed_domains: - - example.com - type: web_search + - 'example.com' + type: 'web_search' properties: engine: $ref: '#/components/schemas/WebSearchEngineEnum' filters: $ref: '#/components/schemas/WebSearchDomainFilter' max_results: - description: >- - Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped. + description: 'Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped.' example: 5 - type: integer + type: 'integer' search_context_size: $ref: '#/components/schemas/SearchContextSizeEnum' type: enum: - - web_search - type: string + - 'web_search' + type: 'string' user_location: $ref: '#/components/schemas/WebSearchUserLocation' required: - - type - type: object + - 'type' + type: 'object' ListBYOKKeysResponse: example: data: @@ -10929,41 +11078,41 @@ components: allowed_user_ids: null created_at: '2025-08-24T10:30:00Z' disabled: false - id: 11111111-2222-3333-4444-555555555555 + id: '11111111-2222-3333-4444-555555555555' is_fallback: false - label: sk-...AbCd - name: Production OpenAI Key - provider: openai + label: 'sk-...AbCd' + name: 'Production OpenAI Key' + provider: 'openai' sort_order: 0 - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' total_count: 1 properties: data: - description: List of BYOK credentials. + description: 'List of BYOK credentials.' items: $ref: '#/components/schemas/BYOKKey' - type: array + type: 'array' total_count: - description: Total number of BYOK credentials matching the filters. + description: 'Total number of BYOK credentials matching the filters.' example: 1 - type: integer + type: 'integer' required: - - data - - total_count - type: object + - 'data' + - 'total_count' + type: 'object' ListEndpointsResponse: - description: List of available endpoints for a model + description: 'List of available endpoints for a model' example: architecture: input_modalities: - - text - instruct_type: chatml - modality: text->text + - 'text' + instruct_type: 'chatml' + modality: 'text->text' output_modalities: - - text - tokenizer: GPT + - 'text' + tokenizer: 'GPT' created: 1692901234 - description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy. + description: 'GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.' endpoints: - context_length: 8192 latency_last_30m: @@ -10973,24 +11122,25 @@ components: p99: 0.85 max_completion_tokens: 4096 max_prompt_tokens: 8192 - model_name: GPT-4 + model_id: 'openai/gpt-4' + model_name: 'GPT-4' name: 'OpenAI: GPT-4' pricing: completion: '0.00006' image: '0' prompt: '0.00003' request: '0' - provider_name: OpenAI - quantization: fp16 - status: default + provider_name: 'OpenAI' + quantization: 'fp16' + status: 0 supported_parameters: - - temperature - - top_p - - max_tokens - - frequency_penalty - - presence_penalty + - 'temperature' + - 'top_p' + - 'max_tokens' + - 'frequency_penalty' + - 'presence_penalty' supports_implicit_caching: true - tag: openai + tag: 'openai' throughput_last_30m: p50: 45.2 p75: 38.5 @@ -10999,238 +11149,235 @@ components: uptime_last_1d: 99.8 uptime_last_30m: 99.5 uptime_last_5m: 100 - id: openai/gpt-4 - name: GPT-4 + id: 'openai/gpt-4' + name: 'GPT-4' properties: architecture: allOf: - $ref: '#/components/schemas/ModelArchitecture' - - example: - instruct_type: chatml - modality: text - tokenizer: GPT - properties: + - properties: input_modalities: - description: Supported input modalities + description: 'Supported input modalities' items: $ref: '#/components/schemas/InputModality' - type: array + type: 'array' instruct_type: $ref: '#/components/schemas/InstructType' modality: - description: Primary modality of the model - example: text - nullable: true - type: string + description: 'Primary modality of the model' + example: 'text' + type: + - 'string' + - 'null' output_modalities: - description: Supported output modalities + description: 'Supported output modalities' items: $ref: '#/components/schemas/OutputModality' - type: array + type: 'array' tokenizer: - allOf: + anyOf: - $ref: '#/components/schemas/ModelGroup' - - nullable: true + - type: 'null' required: - - tokenizer - - instruct_type - - modality - - input_modalities - - output_modalities + - 'tokenizer' + - 'instruct_type' + - 'modality' + - 'input_modalities' + - 'output_modalities' created: - description: Unix timestamp of when the model was created + description: 'Unix timestamp of when the model was created' example: 1692901234 - type: integer + type: 'integer' description: - description: Description of the model - example: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy. - type: string + description: 'Description of the model' + example: 'GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.' + type: 'string' endpoints: - description: List of available endpoints for this model + description: 'List of available endpoints for this model' items: $ref: '#/components/schemas/PublicEndpoint' - type: array + type: 'array' id: - description: Unique identifier for the model - example: openai/gpt-4 - type: string + description: 'Unique identifier for the model' + example: 'openai/gpt-4' + type: 'string' name: - description: Display name of the model - example: GPT-4 - type: string - required: - - id - - name - - created - - description - - architecture - - endpoints - type: object + description: 'Display name of the model' + example: 'GPT-4' + type: 'string' + required: + - 'id' + - 'name' + - 'created' + - 'description' + - 'architecture' + - 'endpoints' + type: 'object' ListGuardrailsResponse: example: data: - allowed_models: null allowed_providers: - - openai - - anthropic - - google + - 'openai' + - 'anthropic' + - 'google' content_filter_builtins: - - action: redact + - action: 'redact' label: '[EMAIL]' - slug: email + slug: 'email' content_filters: null created_at: '2025-08-24T10:30:00Z' - description: Guardrail for production environment + description: 'Guardrail for production environment' enforce_zdr: null enforce_zdr_anthropic: true enforce_zdr_google: false enforce_zdr_openai: true enforce_zdr_other: false enforce_zdr_xai: false - id: 550e8400-e29b-41d4-a716-446655440000 + id: '550e8400-e29b-41d4-a716-446655440000' ignored_models: null ignored_providers: null limit_usd: 100 - name: Production Guardrail - reset_interval: monthly + name: 'Production Guardrail' + reset_interval: 'monthly' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' total_count: 1 properties: data: - description: List of guardrails + description: 'List of guardrails' items: $ref: '#/components/schemas/Guardrail' - type: array + type: 'array' total_count: - description: Total number of guardrails + description: 'Total number of guardrails' example: 25 - type: integer + type: 'integer' required: - - data - - total_count - type: object + - 'data' + - 'total_count' + type: 'object' ListKeyAssignmentsResponse: example: data: - - assigned_by: user_abc123 + - assigned_by: 'user_abc123' created_at: '2025-08-24T10:30:00Z' - guardrail_id: 550e8400-e29b-41d4-a716-446655440001 - id: 550e8400-e29b-41d4-a716-446655440000 - key_hash: c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93 - key_label: prod-key - key_name: Production Key + guardrail_id: '550e8400-e29b-41d4-a716-446655440001' + id: '550e8400-e29b-41d4-a716-446655440000' + key_hash: 'c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93' + key_label: 'prod-key' + key_name: 'Production Key' total_count: 1 properties: data: - description: List of key assignments + description: 'List of key assignments' items: $ref: '#/components/schemas/KeyAssignment' - type: array + type: 'array' total_count: - description: Total number of key assignments for this guardrail + description: 'Total number of key assignments for this guardrail' example: 25 - type: integer + type: 'integer' required: - - data - - total_count - type: object + - 'data' + - 'total_count' + type: 'object' ListMemberAssignmentsResponse: example: data: - - assigned_by: user_abc123 + - assigned_by: 'user_abc123' created_at: '2025-08-24T10:30:00Z' - guardrail_id: 550e8400-e29b-41d4-a716-446655440001 - id: 550e8400-e29b-41d4-a716-446655440000 - organization_id: org_xyz789 - user_id: user_abc123 + guardrail_id: '550e8400-e29b-41d4-a716-446655440001' + id: '550e8400-e29b-41d4-a716-446655440000' + organization_id: 'org_xyz789' + user_id: 'user_abc123' total_count: 1 properties: data: - description: List of member assignments + description: 'List of member assignments' items: $ref: '#/components/schemas/MemberAssignment' - type: array + type: 'array' total_count: - description: Total number of member assignments + description: 'Total number of member assignments' example: 10 - type: integer + type: 'integer' required: - - data - - total_count - type: object + - 'data' + - 'total_count' + type: 'object' ListObservabilityDestinationsResponse: example: data: - api_key_hashes: null config: - baseUrl: https://us.cloud.langfuse.com - publicKey: pk-l...EfGh - secretKey: sk-l...AbCd + baseUrl: 'https://us.cloud.langfuse.com' + publicKey: 'pk-l...EfGh' + secretKey: 'sk-l...AbCd' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Langfuse + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Langfuse' privacy_mode: false sampling_rate: 1 - type: langfuse + type: 'langfuse' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' total_count: 1 properties: data: - description: List of observability destinations. + description: 'List of observability destinations.' items: $ref: '#/components/schemas/ObservabilityDestination' - type: array + type: 'array' total_count: - description: Total number of destinations matching the filters. + description: 'Total number of destinations matching the filters.' example: 1 - type: integer + type: 'integer' required: - - data - - total_count - type: object + - 'data' + - 'total_count' + type: 'object' ListPresetsResponse: - description: A paginated list of presets. + description: 'A paginated list of presets.' example: data: - created_at: '2026-04-20T10:00:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' description: null - designated_version_id: 550e8400-e29b-41d4-a716-446655440000 - id: 650e8400-e29b-41d4-a716-446655440001 - name: my-preset - slug: my-preset - status: active + designated_version_id: '550e8400-e29b-41d4-a716-446655440000' + id: '650e8400-e29b-41d4-a716-446655440001' + name: 'my-preset' + slug: 'my-preset' + status: 'active' status_updated_at: null updated_at: '2026-04-20T10:00:00Z' - workspace_id: 750e8400-e29b-41d4-a716-446655440002 + workspace_id: '750e8400-e29b-41d4-a716-446655440002' total_count: 1 properties: data: items: $ref: '#/components/schemas/Preset' - type: array + type: 'array' total_count: - type: integer + type: 'integer' required: - - data - - total_count - type: object + - 'data' + - 'total_count' + type: 'object' ListPresetVersionsResponse: - description: A paginated list of preset versions. + description: 'A paginated list of preset versions.' example: data: - config: - model: openai/gpt-4o + model: 'openai/gpt-4o' temperature: 0.7 created_at: '2026-04-20T10:00:00Z' - creator_id: user_2dHFtVWx2n56w6HkM0000000000 - id: 550e8400-e29b-41d4-a716-446655440000 - preset_id: 650e8400-e29b-41d4-a716-446655440001 - system_prompt: You are a helpful assistant. + creator_id: 'user_2dHFtVWx2n56w6HkM0000000000' + id: '550e8400-e29b-41d4-a716-446655440000' + preset_id: '650e8400-e29b-41d4-a716-446655440001' + system_prompt: 'You are a helpful assistant.' updated_at: '2026-04-20T10:00:00Z' version: 1 total_count: 1 @@ -11238,356 +11385,362 @@ components: data: items: $ref: '#/components/schemas/PresetDesignatedVersion' - type: array + type: 'array' total_count: - type: integer + type: 'integer' required: - - data - - total_count - type: object + - 'data' + - 'total_count' + type: 'object' ListWorkspaceBudgetsResponse: example: data: - created_at: '2025-08-24T10:30:00Z' - id: 770e8400-e29b-41d4-a716-446655440000 + id: '770e8400-e29b-41d4-a716-446655440000' limit_usd: 100 - reset_interval: monthly + reset_interval: 'monthly' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: data: - description: List of budgets configured for the workspace + description: 'List of budgets configured for the workspace' items: $ref: '#/components/schemas/WorkspaceBudget' - type: array + type: 'array' required: - - data - type: object + - 'data' + type: 'object' ListWorkspaceMembersResponse: example: data: - created_at: '2025-08-24T10:30:00Z' - id: 660e8400-e29b-41d4-a716-446655440000 - role: member - user_id: user_abc123 - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + id: '660e8400-e29b-41d4-a716-446655440000' + role: 'member' + user_id: 'user_abc123' + workspace_id: '550e8400-e29b-41d4-a716-446655440000' total_count: 1 properties: data: - description: List of workspace members + description: 'List of workspace members' items: $ref: '#/components/schemas/WorkspaceMember' - type: array + type: 'array' total_count: - description: Total number of members in the workspace + description: 'Total number of members in the workspace' example: 5 - type: integer + type: 'integer' required: - - data - - total_count - type: object + - 'data' + - 'total_count' + type: 'object' ListWorkspacesResponse: example: data: - created_at: '2025-08-24T10:30:00Z' - created_by: user_abc123 - default_image_model: openai/dall-e-3 - default_provider_sort: price - default_text_model: openai/gpt-4o - description: Production environment workspace - id: 550e8400-e29b-41d4-a716-446655440000 + created_by: 'user_abc123' + default_image_model: 'openai/dall-e-3' + default_provider_sort: 'price' + default_text_model: 'openai/gpt-4o' + description: 'Production environment workspace' + id: '550e8400-e29b-41d4-a716-446655440000' io_logging_api_key_ids: null io_logging_sampling_rate: 1 is_data_discount_logging_enabled: true is_observability_broadcast_enabled: false is_observability_io_logging_enabled: false - name: Production - slug: production + name: 'Production' + slug: 'production' updated_at: '2025-08-24T15:45:00Z' total_count: 1 properties: data: - description: List of workspaces + description: 'List of workspaces' items: $ref: '#/components/schemas/Workspace' - type: array + type: 'array' total_count: - description: Total number of workspaces + description: 'Total number of workspaces' example: 5 - type: integer + type: 'integer' required: - - data - - total_count - type: object + - 'data' + - 'total_count' + type: 'object' LocalShellCallItem: - description: A local shell command execution call + description: 'A local shell command execution call' example: action: command: - - ls + - 'ls' - '-la' env: - PATH: /usr/bin + PATH: '/usr/bin' timeout_ms: 5000 - type: exec - call_id: call-abc123 - id: shell-abc123 - status: completed - type: local_shell_call + type: 'exec' + call_id: 'call-abc123' + id: 'shell-abc123' + status: 'completed' + type: 'local_shell_call' properties: action: properties: command: items: - type: string - type: array + type: 'string' + type: 'array' env: additionalProperties: - type: string - type: object + type: 'string' + type: 'object' timeout_ms: - nullable: true - type: integer + type: + - 'integer' + - 'null' type: enum: - - exec - type: string + - 'exec' + type: 'string' user: - nullable: true - type: string + type: + - 'string' + - 'null' working_directory: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - type - - command - - env - type: object + - 'type' + - 'command' + - 'env' + type: 'object' call_id: - type: string + type: 'string' id: - type: string + type: 'string' status: $ref: '#/components/schemas/ToolCallStatus' type: enum: - - local_shell_call - type: string + - 'local_shell_call' + type: 'string' required: - - type - - id - - call_id - - action - - status - type: object + - 'type' + - 'id' + - 'call_id' + - 'action' + - 'status' + type: 'object' LocalShellCallOutputItem: - description: Output from a local shell command execution + description: 'Output from a local shell command execution' example: - id: output-abc123 - output: |- - total 24 - drwxr-xr-x 5 user staff 160 Jan 1 12:00 . - status: completed - type: local_shell_call_output + id: 'output-abc123' + output: "total 24\ndrwxr-xr-x 5 user staff 160 Jan 1 12:00 ." + status: 'completed' + type: 'local_shell_call_output' properties: id: - type: string + type: 'string' output: - type: string + type: 'string' status: - allOf: + anyOf: - $ref: '#/components/schemas/ToolCallStatus' - - nullable: true + - type: 'null' type: enum: - - local_shell_call_output - type: string + - 'local_shell_call_output' + type: 'string' required: - - type - - id - - output - type: object + - 'type' + - 'id' + - 'output' + type: 'object' McpApprovalRequestItem: - description: Request for approval to execute an MCP tool + description: 'Request for approval to execute an MCP tool' example: arguments: '{"id":"123"}' - id: approval-abc123 - name: delete_record - server_label: database-server - type: mcp_approval_request + id: 'approval-abc123' + name: 'delete_record' + server_label: 'database-server' + type: 'mcp_approval_request' properties: arguments: - type: string + type: 'string' id: - type: string + type: 'string' name: - type: string + type: 'string' server_label: - type: string + type: 'string' type: enum: - - mcp_approval_request - type: string + - 'mcp_approval_request' + type: 'string' required: - - type - - id - - name - - arguments - - server_label - type: object + - 'type' + - 'id' + - 'name' + - 'arguments' + - 'server_label' + type: 'object' McpApprovalResponseItem: - description: User response to an MCP tool approval request + description: 'User response to an MCP tool approval request' example: - approval_request_id: approval-abc123 + approval_request_id: 'approval-abc123' approve: true - reason: Approved for execution - type: mcp_approval_response + reason: 'Approved for execution' + type: 'mcp_approval_response' properties: approval_request_id: - type: string + type: 'string' approve: - type: boolean + type: 'boolean' id: - nullable: true - type: string + type: + - 'string' + - 'null' reason: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - mcp_approval_response - type: string + - 'mcp_approval_response' + type: 'string' required: - - type - - approval_request_id - - approve - type: object + - 'type' + - 'approval_request_id' + - 'approve' + type: 'object' McpCallItem: - description: An MCP tool call with its output or error + description: 'An MCP tool call with its output or error' example: arguments: '{"query":"SELECT * FROM users"}' - id: mcp-call-abc123 - name: query_database + id: 'mcp-call-abc123' + name: 'query_database' output: '[{"id":1,"name":"Alice"}]' - server_label: database-server - type: mcp_call + server_label: 'database-server' + type: 'mcp_call' properties: arguments: - type: string + type: 'string' error: - nullable: true - type: string + type: + - 'string' + - 'null' id: - type: string + type: 'string' name: - type: string + type: 'string' output: - nullable: true - type: string + type: + - 'string' + - 'null' server_label: - type: string + type: 'string' type: enum: - - mcp_call - type: string + - 'mcp_call' + type: 'string' required: - - type - - id - - name - - arguments - - server_label - type: object + - 'type' + - 'id' + - 'name' + - 'arguments' + - 'server_label' + type: 'object' McpListToolsItem: - description: List of available MCP tools from a server + description: 'List of available MCP tools from a server' example: - id: mcp-list-abc123 - server_label: database-server + id: 'mcp-list-abc123' + server_label: 'database-server' tools: - - description: Execute a database query + - description: 'Execute a database query' input_schema: properties: query: - type: string - type: object - name: query_database - type: mcp_list_tools + type: 'string' + type: 'object' + name: 'query_database' + type: 'mcp_list_tools' properties: error: - nullable: true - type: string + type: + - 'string' + - 'null' id: - type: string + type: 'string' server_label: - type: string + type: 'string' tools: items: properties: - annotations: - nullable: true + annotations: {} description: - nullable: true - type: string + type: + - 'string' + - 'null' input_schema: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' name: - type: string + type: 'string' required: - - name - - input_schema - type: object - type: array + - 'name' + - 'input_schema' + type: 'object' + type: 'array' type: enum: - - mcp_list_tools - type: string + - 'mcp_list_tools' + type: 'string' required: - - type - - id - - server_label - - tools - type: object + - 'type' + - 'id' + - 'server_label' + - 'tools' + type: 'object' McpServerTool: - description: MCP (Model Context Protocol) tool configuration + description: 'MCP (Model Context Protocol) tool configuration' example: - server_label: my-server - server_url: https://example.com/mcp - type: mcp + server_label: 'my-server' + server_url: 'https://example.com/mcp' + type: 'mcp' properties: allowed_tools: anyOf: - items: - type: string - type: array + type: 'string' + type: 'array' - properties: read_only: - type: boolean + type: 'boolean' tool_names: items: - type: string - type: array - type: object - - nullable: true + type: 'string' + type: 'array' + type: 'object' + - type: 'null' authorization: - type: string + type: 'string' connector_id: enum: - - connector_dropbox - - connector_gmail - - connector_googlecalendar - - connector_googledrive - - connector_microsoftteams - - connector_outlookcalendar - - connector_outlookemail - - connector_sharepoint - type: string + - 'connector_dropbox' + - 'connector_gmail' + - 'connector_googlecalendar' + - 'connector_googledrive' + - 'connector_microsoftteams' + - 'connector_outlookcalendar' + - 'connector_outlookemail' + - 'connector_sharepoint' + type: 'string' x-speakeasy-unknown-values: allow headers: additionalProperties: - type: string - nullable: true - type: object + type: 'string' + type: + - 'object' + - 'null' require_approval: anyOf: - properties: @@ -11595,162 +11748,161 @@ components: properties: tool_names: items: - type: string - type: array - type: object + type: 'string' + type: 'array' + type: 'object' never: properties: tool_names: items: - type: string - type: array - type: object - type: object + type: 'string' + type: 'array' + type: 'object' + type: 'object' - enum: - - always - type: string + - 'always' + type: 'string' - enum: - - never - type: string - - nullable: true + - 'never' + type: 'string' + - type: 'null' server_description: - type: string + type: 'string' server_label: - type: string + type: 'string' server_url: - type: string + type: 'string' type: enum: - - mcp - type: string + - 'mcp' + type: 'string' required: - - type - - server_label - type: object + - 'type' + - 'server_label' + type: 'object' MemberAssignment: example: - assigned_by: user_abc123 + assigned_by: 'user_abc123' created_at: '2025-08-24T10:30:00Z' - guardrail_id: 550e8400-e29b-41d4-a716-446655440001 - id: 550e8400-e29b-41d4-a716-446655440000 - organization_id: org_xyz789 - user_id: user_abc123 + guardrail_id: '550e8400-e29b-41d4-a716-446655440001' + id: '550e8400-e29b-41d4-a716-446655440000' + organization_id: 'org_xyz789' + user_id: 'user_abc123' properties: assigned_by: - description: User ID of who made the assignment - example: user_abc123 - nullable: true - type: string + description: 'User ID of who made the assignment' + example: 'user_abc123' + type: + - 'string' + - 'null' created_at: - description: ISO 8601 timestamp of when the assignment was created + description: 'ISO 8601 timestamp of when the assignment was created' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' guardrail_id: - description: ID of the guardrail - example: 550e8400-e29b-41d4-a716-446655440001 - format: uuid - type: string + description: 'ID of the guardrail' + example: '550e8400-e29b-41d4-a716-446655440001' + format: 'uuid' + type: 'string' id: - description: Unique identifier for the assignment - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string + description: 'Unique identifier for the assignment' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' organization_id: - description: Organization ID - example: org_xyz789 - type: string + description: 'Organization ID' + example: 'org_xyz789' + type: 'string' user_id: - description: Clerk user ID of the assigned member - example: user_abc123 - type: string - required: - - id - - user_id - - organization_id - - guardrail_id - - assigned_by - - created_at - type: object + description: 'Clerk user ID of the assigned member' + example: 'user_abc123' + type: 'string' + required: + - 'id' + - 'user_id' + - 'organization_id' + - 'guardrail_id' + - 'assigned_by' + - 'created_at' + type: 'object' MessagesAdvisorToolResultBlock: - description: >- - Advisor tool result from a prior assistant turn, replayed back to the model on the next turn. Mirrors the block Anthropic returns in assistant content when the `advisor_20260301` tool runs. + description: 'Advisor tool result from a prior assistant turn, replayed back to the model on the next turn. Mirrors the block Anthropic returns in assistant content when the `advisor_20260301` tool runs.' example: content: - text: Advisor response text - type: advisor_result - tool_use_id: srvtoolu_01abc - type: advisor_tool_result + text: 'Advisor response text' + type: 'advisor_result' + tool_use_id: 'srvtoolu_01abc' + type: 'advisor_tool_result' properties: content: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' tool_use_id: - type: string + type: 'string' type: enum: - - advisor_tool_result - type: string + - 'advisor_tool_result' + type: 'string' required: - - type - - tool_use_id - - content - type: object + - 'type' + - 'tool_use_id' + - 'content' + type: 'object' MessagesContentBlockDeltaEvent: - description: Event sent when content is added to a content block + description: 'Event sent when content is added to a content block' example: delta: - text: Hello - type: text_delta + text: 'Hello' + type: 'text_delta' index: 0 - type: content_block_delta + type: 'content_block_delta' properties: delta: oneOf: - properties: text: - type: string + type: 'string' type: enum: - - text_delta - type: string + - 'text_delta' + type: 'string' required: - - type - - text - type: object + - 'type' + - 'text' + type: 'object' - properties: partial_json: - type: string + type: 'string' type: enum: - - input_json_delta - type: string + - 'input_json_delta' + type: 'string' required: - - type - - partial_json - type: object + - 'type' + - 'partial_json' + type: 'object' - properties: thinking: - type: string + type: 'string' type: enum: - - thinking_delta - type: string + - 'thinking_delta' + type: 'string' required: - - type - - thinking - type: object + - 'type' + - 'thinking' + type: 'object' - properties: signature: - type: string + type: 'string' type: enum: - - signature_delta - type: string + - 'signature_delta' + type: 'string' required: - - type - - signature - type: object + - 'type' + - 'signature' + type: 'object' - properties: citation: discriminator: @@ -11760,7 +11912,7 @@ components: page_location: '#/components/schemas/AnthropicCitationPageLocation' search_result_location: '#/components/schemas/AnthropicCitationSearchResultLocation' web_search_result_location: '#/components/schemas/AnthropicCitationWebSearchResultLocation' - propertyName: type + propertyName: 'type' oneOf: - $ref: '#/components/schemas/AnthropicCitationCharLocation' - $ref: '#/components/schemas/AnthropicCitationPageLocation' @@ -11769,43 +11921,45 @@ components: - $ref: '#/components/schemas/AnthropicCitationSearchResultLocation' type: enum: - - citations_delta - type: string + - 'citations_delta' + type: 'string' required: - - type - - citation - type: object + - 'type' + - 'citation' + type: 'object' - properties: content: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - compaction_delta - type: string + - 'compaction_delta' + type: 'string' required: - - type - - content - type: object + - 'type' + - 'content' + type: 'object' index: - type: integer + type: 'integer' type: enum: - - content_block_delta - type: string + - 'content_block_delta' + type: 'string' required: - - type - - index - - delta - type: object + - 'type' + - 'index' + - 'delta' + type: 'object' MessagesContentBlockStartEvent: - description: Event sent when a new content block starts + description: 'Event sent when a new content block starts' example: content_block: + citations: [] text: '' - type: text + type: 'text' index: 0 - type: content_block_start + type: 'content_block_start' properties: content_block: anyOf: @@ -11825,53 +11979,60 @@ components: - $ref: '#/components/schemas/AnthropicAdvisorToolResult' - properties: content: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - compaction - type: string + - 'compaction' + type: 'string' required: - - type - - content - type: object + - 'type' + - 'content' + type: 'object' index: - type: integer + type: 'integer' type: enum: - - content_block_start - type: string + - 'content_block_start' + type: 'string' required: - - type - - index - - content_block - type: object + - 'type' + - 'index' + - 'content_block' + type: 'object' MessagesContentBlockStopEvent: - description: Event sent when a content block is complete + description: 'Event sent when a content block is complete' example: index: 0 - type: content_block_stop + type: 'content_block_stop' properties: index: - type: integer + type: 'integer' type: enum: - - content_block_stop - type: string + - 'content_block_stop' + type: 'string' required: - - type - - index - type: object + - 'type' + - 'index' + type: 'object' MessagesDeltaEvent: - description: Event sent when the message metadata changes (e.g., stop_reason) + description: 'Event sent when the message metadata changes (e.g., stop_reason)' example: delta: + container: null stop_details: null - stop_reason: end_turn + stop_reason: 'end_turn' stop_sequence: null - type: message_delta + type: 'message_delta' usage: + cache_creation_input_tokens: null + cache_read_input_tokens: null + input_tokens: null output_tokens: 15 + output_tokens_details: null + server_tool_use: null properties: delta: properties: @@ -11882,149 +12043,152 @@ components: stop_reason: $ref: '#/components/schemas/ORAnthropicStopReason' stop_sequence: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - container - - stop_details - - stop_reason - - stop_sequence - type: object + - 'container' + - 'stop_details' + - 'stop_reason' + - 'stop_sequence' + type: 'object' type: enum: - - message_delta - type: string + - 'message_delta' + type: 'string' usage: properties: cache_creation: $ref: '#/components/schemas/AnthropicCacheCreation' cache_creation_input_tokens: - nullable: true - type: integer + type: + - 'integer' + - 'null' cache_read_input_tokens: - nullable: true - type: integer + type: + - 'integer' + - 'null' input_tokens: - nullable: true - type: integer + type: + - 'integer' + - 'null' iterations: items: $ref: '#/components/schemas/AnthropicUsageIteration' - type: array + type: 'array' output_tokens: - type: integer + type: 'integer' output_tokens_details: $ref: '#/components/schemas/AnthropicOutputTokensDetails' server_tool_use: - nullable: true properties: web_fetch_requests: - type: integer + type: 'integer' web_search_requests: - type: integer + type: 'integer' required: - - web_search_requests - - web_fetch_requests - type: object + - 'web_search_requests' + - 'web_fetch_requests' + type: + - 'object' + - 'null' required: - - input_tokens - - output_tokens - - output_tokens_details - - cache_creation_input_tokens - - cache_read_input_tokens - - server_tool_use - type: object - required: - - type - - delta - - usage - type: object + - 'input_tokens' + - 'output_tokens' + - 'output_tokens_details' + - 'cache_creation_input_tokens' + - 'cache_read_input_tokens' + - 'server_tool_use' + type: 'object' + required: + - 'type' + - 'delta' + - 'usage' + type: 'object' MessagesErrorDetail: example: - error_type: invalid_request - message: Invalid request parameters - type: invalid_request_error + error_type: 'invalid_request' + message: 'Invalid request parameters' + type: 'invalid_request_error' properties: error_type: $ref: '#/components/schemas/ApiErrorType' message: - type: string + type: 'string' type: - type: string + type: 'string' required: - - type - - message - type: object + - 'type' + - 'message' + type: 'object' MessagesErrorEvent: - description: Error event in the stream + description: 'Error event in the stream' example: error: - error_type: provider_overloaded - message: Overloaded - type: overloaded_error - type: error + error_type: 'provider_overloaded' + message: 'Overloaded' + type: 'overloaded_error' + type: 'error' properties: error: properties: error_type: $ref: '#/components/schemas/ApiErrorType' message: - type: string + type: 'string' type: - type: string + type: 'string' required: - - type - - message - type: object + - 'type' + - 'message' + type: 'object' openrouter_metadata: $ref: '#/components/schemas/OpenRouterMetadata' type: enum: - - error - type: string + - 'error' + type: 'string' required: - - type - - error - type: object + - 'type' + - 'error' + type: 'object' MessagesErrorResponse: example: error: - message: Invalid request parameters - type: invalid_request_error - type: error + message: 'Invalid request parameters' + type: 'invalid_request_error' + type: 'error' properties: error: $ref: '#/components/schemas/MessagesErrorDetail' type: enum: - - error - type: string + - 'error' + type: 'string' required: - - type - - error - type: object + - 'type' + - 'error' + type: 'object' MessagesFallbackParam: - additionalProperties: - nullable: true - description: >- - Fallback model to try when the primary model fails or refuses. Only the `model` field is supported; per-attempt overrides are rejected. + additionalProperties: {} + description: 'Fallback model to try when the primary model fails or refuses. Only the `model` field is supported; per-attempt overrides are rejected.' example: - model: claude-opus-4-8 + model: 'claude-opus-4-8' properties: model: - type: string + type: 'string' required: - - model - type: object + - 'model' + type: 'object' MessagesMessageParam: - description: Anthropic message with OpenRouter extensions + description: 'Anthropic message with OpenRouter extensions' example: - content: Hello, how are you? - role: user + content: 'Hello, how are you?' + role: 'user' properties: content: anyOf: - - type: string + - type: 'string' - items: oneOf: - $ref: '#/components/schemas/AnthropicTextBlockParam' @@ -12034,99 +12198,97 @@ components: cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' id: - type: string - input: - nullable: true + type: 'string' + input: {} name: - type: string + type: 'string' type: enum: - - tool_use - type: string + - 'tool_use' + type: 'string' required: - - type - - id - - name - type: object + - 'type' + - 'id' + - 'name' + type: 'object' - properties: cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' content: anyOf: - - type: string + - type: 'string' - items: anyOf: - $ref: '#/components/schemas/AnthropicTextBlockParam' - $ref: '#/components/schemas/AnthropicImageBlockParam' - properties: tool_name: - type: string + type: 'string' type: enum: - - tool_reference - type: string + - 'tool_reference' + type: 'string' required: - - type - - tool_name - type: object + - 'type' + - 'tool_name' + type: 'object' - $ref: '#/components/schemas/AnthropicSearchResultBlockParam' - $ref: '#/components/schemas/AnthropicDocumentBlockParam' - type: array + type: 'array' is_error: - type: boolean + type: 'boolean' tool_use_id: - type: string + type: 'string' type: enum: - - tool_result - type: string + - 'tool_result' + type: 'string' required: - - type - - tool_use_id - type: object + - 'type' + - 'tool_use_id' + type: 'object' - properties: signature: - type: string + type: 'string' thinking: - type: string + type: 'string' type: enum: - - thinking - type: string + - 'thinking' + type: 'string' required: - - type - - thinking - - signature - type: object + - 'type' + - 'thinking' + - 'signature' + type: 'object' - properties: data: - type: string + type: 'string' type: enum: - - redacted_thinking - type: string + - 'redacted_thinking' + type: 'string' required: - - type - - data - type: object + - 'type' + - 'data' + type: 'object' - properties: cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' id: - type: string - input: - nullable: true + type: 'string' + input: {} name: - type: string + type: 'string' type: enum: - - server_tool_use - type: string + - 'server_tool_use' + type: 'string' required: - - type - - id - - name - type: object + - 'type' + - 'id' + - 'name' + type: 'object' - properties: cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' @@ -12134,150 +12296,150 @@ components: anyOf: - items: $ref: '#/components/schemas/AnthropicWebSearchResultBlockParam' - type: array + type: 'array' - properties: error_code: enum: - - invalid_tool_input - - unavailable - - max_uses_exceeded - - too_many_requests - - query_too_long - type: string + - 'invalid_tool_input' + - 'unavailable' + - 'max_uses_exceeded' + - 'too_many_requests' + - 'query_too_long' + type: 'string' x-speakeasy-unknown-values: allow type: enum: - - web_search_tool_result_error - type: string + - 'web_search_tool_result_error' + type: 'string' required: - - type - - error_code - type: object + - 'type' + - 'error_code' + type: 'object' tool_use_id: - type: string + type: 'string' type: enum: - - web_search_tool_result - type: string + - 'web_search_tool_result' + type: 'string' required: - - type - - tool_use_id - - content - type: object + - 'type' + - 'tool_use_id' + - 'content' + type: 'object' - $ref: '#/components/schemas/AnthropicSearchResultBlockParam' - properties: cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' content: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - compaction - type: string + - 'compaction' + type: 'string' required: - - type - - content - type: object + - 'type' + - 'content' + type: 'object' - $ref: '#/components/schemas/MessagesAdvisorToolResultBlock' - type: array + type: 'array' role: enum: - - user - - assistant - - system - type: string + - 'user' + - 'assistant' + - 'system' + type: 'string' x-speakeasy-unknown-values: allow required: - - role - - content - type: object + - 'role' + - 'content' + type: 'object' MessagesOutputConfig: - description: Configuration for controlling output behavior. Supports the effort parameter and structured output format. + description: 'Configuration for controlling output behavior. Supports the effort parameter and structured output format.' example: - effort: medium + effort: 'medium' properties: effort: - description: >- - How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. Valid values are `low`, `medium`, `high`, `xhigh`, or `max`. - enum: - - low - - medium - - high - - xhigh - - max + description: 'How much effort the model should put into its response. Higher effort levels may result in more thorough analysis but take longer. Valid values are `low`, `medium`, `high`, `xhigh`, or `max`.' + enum: + - 'low' + - 'medium' + - 'high' + - 'xhigh' + - 'max' - null - example: medium - nullable: true - type: string + example: 'medium' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow format: - description: >- - A schema to specify Claude's output format in responses. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs). - nullable: true + description: 'A schema to specify Claude''s output format in responses. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs).' properties: schema: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' type: enum: - - json_schema - type: string + - 'json_schema' + type: 'string' required: - - type - - schema - type: object + - 'type' + - 'schema' + type: + - 'object' + - 'null' task_budget: - description: >- - Task budget for an agentic turn. The model sees a countdown of remaining tokens and uses it to prioritize work and wind down gracefully. Advisory — does not enforce a hard cap. + description: 'Task budget for an agentic turn. The model sees a countdown of remaining tokens and uses it to prioritize work and wind down gracefully. Advisory — does not enforce a hard cap.' example: total: 400000 - type: tokens - nullable: true + type: 'tokens' properties: remaining: minimum: 0 - nullable: true - type: integer + type: + - 'integer' + - 'null' total: minimum: 20000 - type: integer + type: 'integer' type: enum: - - tokens - type: string + - 'tokens' + type: 'string' required: - - type - - total - type: object - type: object + - 'type' + - 'total' + type: + - 'object' + - 'null' + type: 'object' MessagesPingEvent: - description: Keep-alive ping event + description: 'Keep-alive ping event' example: - type: ping + type: 'ping' properties: type: enum: - - ping - type: string + - 'ping' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' MessagesRequest: - description: Request schema for Anthropic Messages API endpoint + description: 'Request schema for Anthropic Messages API endpoint' example: max_tokens: 1024 messages: - - content: Hello, how are you? - role: user - model: anthropic/claude-4.5-sonnet-20250929 + - content: 'Hello, how are you?' + role: 'user' + model: 'anthropic/claude-4.5-sonnet-20250929' temperature: 0.7 properties: cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' context_management: - nullable: true properties: edits: items: @@ -12287,16 +12449,17 @@ components: $ref: '#/components/schemas/AnthropicInputTokensClearAtLeast' clear_tool_inputs: anyOf: - - type: boolean + - type: 'boolean' - items: - type: string - type: array - - nullable: true + type: 'string' + type: 'array' + - type: 'null' exclude_tools: items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' keep: $ref: '#/components/schemas/AnthropicToolUsesKeep' trigger: @@ -12304,17 +12467,17 @@ components: mapping: input_tokens: '#/components/schemas/AnthropicInputTokensTrigger' tool_uses: '#/components/schemas/AnthropicToolUsesTrigger' - propertyName: type + propertyName: 'type' oneOf: - $ref: '#/components/schemas/AnthropicInputTokensTrigger' - $ref: '#/components/schemas/AnthropicToolUsesTrigger' type: enum: - - clear_tool_uses_20250919 - type: string + - 'clear_tool_uses_20250919' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' - properties: keep: anyOf: @@ -12322,77 +12485,83 @@ components: - properties: type: enum: - - all - type: string + - 'all' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' - enum: - - all - type: string + - 'all' + type: 'string' type: enum: - - clear_thinking_20251015 - type: string + - 'clear_thinking_20251015' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' - properties: instructions: - nullable: true - type: string + type: + - 'string' + - 'null' pause_after_compaction: - type: boolean + type: 'boolean' trigger: - allOf: - - $ref: '#/components/schemas/AnthropicInputTokensTrigger' - - nullable: true - properties: {} - type: object + anyOf: + - allOf: + - $ref: '#/components/schemas/AnthropicInputTokensTrigger' + - properties: {} + type: 'object' + - type: 'null' example: - type: input_tokens + type: 'input_tokens' value: 100000 type: enum: - - compact_20260112 - type: string + - 'compact_20260112' + type: 'string' required: - - type - type: object - type: array - type: object + - 'type' + type: 'object' + type: 'array' + type: + - 'object' + - 'null' fallbacks: - description: >- - Fallback models to try if the primary model fails or refuses, in order. Handled by OpenRouter multi-model routing rather than Anthropic server-side fallbacks; cannot be combined with `models`. Each entry accepts only `model`. Maximum of 3 entries. + description: 'Fallback models to try if the primary model fails or refuses, in order. Handled by OpenRouter multi-model routing rather than Anthropic server-side fallbacks; cannot be combined with `models`. Each entry accepts only `model`. Maximum of 3 entries.' example: - - model: claude-opus-4-8 + - model: 'claude-opus-4-8' items: $ref: '#/components/schemas/MessagesFallbackParam' - nullable: true - type: array + type: + - 'array' + - 'null' max_tokens: - type: integer + type: 'integer' messages: items: $ref: '#/components/schemas/MessagesMessageParam' - nullable: true - type: array + type: + - 'array' + - 'null' metadata: properties: user_id: - nullable: true - type: string - type: object + type: + - 'string' + - 'null' + type: 'object' model: - type: string + type: 'string' models: items: - type: string - type: array + type: 'string' + type: 'array' output_config: $ref: '#/components/schemas/MessagesOutputConfig' plugins: - description: Plugins you want to enable for this request, including their settings. + description: 'Plugins you want to enable for this request, including their settings.' items: discriminator: mapping: @@ -12405,7 +12574,7 @@ components: response-healing: '#/components/schemas/ResponseHealingPlugin' web: '#/components/schemas/WebSearchPlugin' web-fetch: '#/components/schemas/WebFetchPlugin' - propertyName: id + propertyName: 'id' oneOf: - $ref: '#/components/schemas/AutoRouterPlugin' - $ref: '#/components/schemas/ModerationPlugin' @@ -12416,117 +12585,115 @@ components: - $ref: '#/components/schemas/ContextCompressionPlugin' - $ref: '#/components/schemas/ParetoRouterPlugin' - $ref: '#/components/schemas/FusionPlugin' - type: array + type: 'array' provider: $ref: '#/components/schemas/ProviderPreferences' route: $ref: '#/components/schemas/DeprecatedRoute' service_tier: - type: string + type: 'string' session_id: - description: >- - A unique identifier for grouping related requests (e.g., a conversation or agent workflow). When provided, OpenRouter uses it as the sticky routing key, routing all requests in the session to the same provider to maximize prompt cache hits. Also used for observability grouping. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters. + description: 'A unique identifier for grouping related requests (e.g., a conversation or agent workflow). When provided, OpenRouter uses it as the sticky routing key, routing all requests in the session to the same provider to maximize prompt cache hits. Also used for observability grouping. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters.' maxLength: 256 - type: string + type: 'string' speed: allOf: - $ref: '#/components/schemas/AnthropicSpeed' - - description: >- - Controls output generation speed. When set to `fast`, uses a higher-speed inference configuration at premium pricing. Defaults to `standard` when omitted. - example: fast + - description: 'Controls output generation speed. When set to `fast`, uses a higher-speed inference configuration at premium pricing. Defaults to `standard` when omitted.' + example: 'fast' stop_sequences: items: - type: string - type: array + type: 'string' + type: 'array' stop_server_tools_when: $ref: '#/components/schemas/StopServerToolsWhen' stream: - type: boolean + type: 'boolean' system: anyOf: - - type: string + - type: 'string' - items: $ref: '#/components/schemas/AnthropicTextBlockParam' - type: array + type: 'array' temperature: - format: double - type: number + format: 'double' + type: 'number' thinking: oneOf: - properties: budget_tokens: - type: integer + type: 'integer' display: $ref: '#/components/schemas/AnthropicThinkingDisplay' type: enum: - - enabled - type: string + - 'enabled' + type: 'string' required: - - type - - budget_tokens - type: object + - 'type' + - 'budget_tokens' + type: 'object' - properties: type: enum: - - disabled - type: string + - 'disabled' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' - properties: display: $ref: '#/components/schemas/AnthropicThinkingDisplay' type: enum: - - adaptive - type: string + - 'adaptive' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' tool_choice: oneOf: - properties: disable_parallel_tool_use: - type: boolean + type: 'boolean' type: enum: - - auto - type: string + - 'auto' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' - properties: disable_parallel_tool_use: - type: boolean + type: 'boolean' type: enum: - - any - type: string + - 'any' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' - properties: type: enum: - - none - type: string + - 'none' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' - properties: disable_parallel_tool_use: - type: boolean + type: 'boolean' name: - type: string + type: 'string' type: enum: - - tool - type: string + - 'tool' + type: 'string' required: - - type - - name - type: object + - 'type' + - 'name' + type: 'object' tools: items: anyOf: @@ -12534,204 +12701,207 @@ components: cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' description: - type: string + type: 'string' input_schema: - additionalProperties: - nullable: true + additionalProperties: {} properties: - properties: - nullable: true + properties: {} required: items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' type: - default: object - type: string - type: object + default: 'object' + type: 'string' + type: 'object' name: - type: string + type: 'string' type: enum: - - custom - type: string + - 'custom' + type: 'string' required: - - name - - input_schema - type: object + - 'name' + - 'input_schema' + type: 'object' - properties: cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' name: enum: - - bash - type: string + - 'bash' + type: 'string' type: enum: - - bash_20250124 - type: string + - 'bash_20250124' + type: 'string' required: - - type - - name - type: object + - 'type' + - 'name' + type: 'object' - properties: cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' name: enum: - - str_replace_editor - type: string + - 'str_replace_editor' + type: 'string' type: enum: - - text_editor_20250124 - type: string + - 'text_editor_20250124' + type: 'string' required: - - type - - name - type: object + - 'type' + - 'name' + type: 'object' - properties: allowed_domains: items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' blocked_domains: items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' max_uses: - nullable: true - type: integer + type: + - 'integer' + - 'null' name: enum: - - web_search - type: string + - 'web_search' + type: 'string' type: enum: - - web_search_20250305 - type: string + - 'web_search_20250305' + type: 'string' user_location: $ref: '#/components/schemas/AnthropicWebSearchToolUserLocation' required: - - type - - name - type: object + - 'type' + - 'name' + type: 'object' - properties: allowed_callers: $ref: '#/components/schemas/AnthropicAllowedCallers' allowed_domains: items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' blocked_domains: items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' max_uses: - nullable: true - type: integer + type: + - 'integer' + - 'null' name: enum: - - web_search - type: string + - 'web_search' + type: 'string' type: enum: - - web_search_20260209 - type: string + - 'web_search_20260209' + type: 'string' user_location: $ref: '#/components/schemas/AnthropicWebSearchToolUserLocation' required: - - type - - name - type: object + - 'type' + - 'name' + type: 'object' - properties: allowed_callers: $ref: '#/components/schemas/AnthropicAllowedCallers' cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' caching: - allOf: + anyOf: - $ref: '#/components/schemas/AnthropicCacheControlDirective' - - nullable: true + - type: 'null' defer_loading: - type: boolean + type: 'boolean' max_uses: - type: integer + type: 'integer' model: - type: string + type: 'string' name: enum: - - advisor - type: string + - 'advisor' + type: 'string' type: enum: - - advisor_20260301 - type: string + - 'advisor_20260301' + type: 'string' required: - - type - - name - - model - type: object + - 'type' + - 'name' + - 'model' + type: 'object' - $ref: '#/components/schemas/BashServerTool' - $ref: '#/components/schemas/DatetimeServerTool' - $ref: '#/components/schemas/ImageGenerationServerTool_OpenRouter' - $ref: '#/components/schemas/MessagesSearchModelsServerTool' - $ref: '#/components/schemas/WebFetchServerTool' - $ref: '#/components/schemas/OpenRouterWebSearchServerTool' - - additionalProperties: - nullable: true + - additionalProperties: {} properties: type: - type: string + type: 'string' required: - - type - type: object - type: array + - 'type' + type: 'object' + type: 'array' top_k: - type: integer + type: 'integer' top_p: - format: double - type: number + format: 'double' + type: 'number' trace: $ref: '#/components/schemas/TraceConfig' user: - description: >- - A unique identifier representing your end-user, which helps distinguish between different users of your app. This allows your app to identify specific users in case of abuse reports, preventing your entire app from being affected by the actions of individual users. Maximum of 256 characters. + description: 'A unique identifier representing your end-user, which helps distinguish between different users of your app. This allows your app to identify specific users in case of abuse reports, preventing your entire app from being affected by the actions of individual users. Maximum of 256 characters.' maxLength: 256 - type: string + type: 'string' required: - - model - - messages - type: object + - 'model' + - 'messages' + type: 'object' MessagesResult: allOf: - $ref: '#/components/schemas/BaseMessagesResult' - properties: context_management: - nullable: true properties: applied_edits: items: - additionalProperties: - nullable: true + additionalProperties: {} properties: type: - type: string + type: 'string' required: - - type - type: object - type: array + - 'type' + type: 'object' + type: 'array' required: - - applied_edits - type: object + - 'applied_edits' + type: + - 'object' + - 'null' openrouter_metadata: $ref: '#/components/schemas/OpenRouterMetadata' provider: @@ -12741,23 +12911,25 @@ components: - $ref: '#/components/schemas/AnthropicUsage' - properties: cost: - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' cost_details: $ref: '#/components/schemas/CostDetails' is_byok: - type: boolean + type: 'boolean' iterations: items: $ref: '#/components/schemas/AnthropicUsageIteration' - type: array + type: 'array' service_tier: - nullable: true - type: string + type: + - 'string' + - 'null' speed: $ref: '#/components/schemas/AnthropicSpeed' - type: object + type: 'object' example: cache_creation: null cache_creation_input_tokens: null @@ -12765,23 +12937,24 @@ components: inference_geo: null input_tokens: 100 output_tokens: 50 + output_tokens_details: null server_tool_use: null - service_tier: standard - type: object - description: Non-streaming response from the Anthropic Messages API with OpenRouter extensions + service_tier: 'standard' + type: 'object' + description: 'Non-streaming response from the Anthropic Messages API with OpenRouter extensions' example: container: null content: - citations: [] - text: Hello! I'm doing well, thank you for asking. - type: text - id: msg_01XFDUDYJgAACzvnptvVoYEL - model: claude-sonnet-4-5-20250929 - role: assistant + text: 'Hello! I''m doing well, thank you for asking.' + type: 'text' + id: 'msg_01XFDUDYJgAACzvnptvVoYEL' + model: 'claude-sonnet-4-5-20250929' + role: 'assistant' stop_details: null - stop_reason: end_turn + stop_reason: 'end_turn' stop_sequence: null - type: message + type: 'message' usage: cache_creation: null cache_creation_input_tokens: null @@ -12789,40 +12962,49 @@ components: inference_geo: null input_tokens: 12 output_tokens: 15 + output_tokens_details: null server_tool_use: null - service_tier: standard + service_tier: 'standard' MessagesSearchModelsServerTool: description: 'OpenRouter built-in server tool: searches and filters AI models available on OpenRouter' example: parameters: max_results: 5 - type: openrouter:experimental__search_models + type: 'openrouter:experimental__search_models' properties: parameters: $ref: '#/components/schemas/SearchModelsServerToolConfig' type: enum: - - openrouter:experimental__search_models - type: string + - 'openrouter:experimental__search_models' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' MessagesStartEvent: - description: Event sent at the start of a streaming message + description: 'Event sent at the start of a streaming message' example: message: + container: null content: [] - id: msg_01XFDUDYJgAACzvnptvVoYEL - model: claude-sonnet-4-5-20250929 - role: assistant + id: 'msg_01XFDUDYJgAACzvnptvVoYEL' + model: 'claude-sonnet-4-5-20250929' + role: 'assistant' stop_details: null stop_reason: null stop_sequence: null - type: message + type: 'message' usage: + cache_creation: null + cache_creation_input_tokens: null + cache_read_input_tokens: null + inference_geo: null input_tokens: 12 output_tokens: 0 - type: message_start + output_tokens_details: null + server_tool_use: null + service_tier: 'standard' + type: 'message_start' properties: message: properties: @@ -12831,152 +13013,151 @@ components: content: items: $ref: '#/components/schemas/ORAnthropicContentBlock' - type: array + type: 'array' id: - type: string + type: 'string' model: - type: string + type: 'string' provider: enum: - - AnyScale - - Atoma - - Cent-ML - - CrofAI - - Enfer - - GoPomelo - - HuggingFace - - Hyperbolic - - Hyperbolic 2 - - InoCloud - - Kluster - - Lambda - - Lepton - - Lynn 2 - - Lynn - - Mancer - - Meta - - Modal - - Nineteen - - OctoAI - - Recursal - - Reflection - - Replicate - - SambaNova 2 - - SF Compute - - Targon - - Together 2 - - Ubicloud - - 01.AI - - AkashML - - AI21 - - AionLabs - - Alibaba - - Ambient - - Baidu - - Amazon Bedrock - - Amazon Nova - - Anthropic - - Arcee AI - - AtlasCloud - - Avian - - Azure - - BaseTen - - BytePlus - - Black Forest Labs - - Cerebras - - Chutes - - Cirrascale - - Clarifai - - Cloudflare - - Cohere - - Crucible - - Crusoe - - Darkbloom - - Decart - - Deepgram - - DeepInfra - - DeepSeek - - DekaLLM - - DigitalOcean - - Featherless - - Fireworks - - Friendli - - GMICloud - - Google - - Google AI Studio - - Groq - - HeyGen - - Inception - - Inceptron - - InferenceNet - - Ionstream - - Infermatic - - Io Net - - Inferact vLLM - - Inflection - - Liquid - - Mara - - Mancer 2 - - Minimax - - ModelRun - - Mistral - - Modular - - Moonshot AI - - Morph - - NCompass - - Nebius - - Nex AGI - - NextBit - - Novita - - Nvidia - - OpenAI - - OpenInference - - Parasail - - Poolside - - Perceptron - - Perplexity - - Phala - - Recraft - - Reka - - Relace - - Sail Research - - Sakana AI - - SambaNova - - Seed - - SiliconFlow - - Sourceful - - StepFun - - Stealth - - StreamLake - - Switchpoint - - Tenstorrent - - Together - - Upstage - - Venice - - Wafer - - WandB - - Quiver - - Krea - - Xiaomi - - xAI - - Z.AI - - FakeProvider - type: string + - 'AnyScale' + - 'Atoma' + - 'Cent-ML' + - 'CrofAI' + - 'Enfer' + - 'GoPomelo' + - 'HuggingFace' + - 'Hyperbolic' + - 'Hyperbolic 2' + - 'InoCloud' + - 'Kluster' + - 'Lambda' + - 'Lepton' + - 'Lynn 2' + - 'Lynn' + - 'Mancer' + - 'Modal' + - 'Nineteen' + - 'OctoAI' + - 'Recursal' + - 'Reflection' + - 'Replicate' + - 'SambaNova 2' + - 'SF Compute' + - 'Targon' + - 'Together 2' + - 'Ubicloud' + - '01.AI' + - 'AkashML' + - 'AI21' + - 'AionLabs' + - 'Alibaba' + - 'Ambient' + - 'Baidu' + - 'Amazon Bedrock' + - 'Amazon Nova' + - 'Anthropic' + - 'Arcee AI' + - 'AtlasCloud' + - 'Avian' + - 'Azure' + - 'BaseTen' + - 'BytePlus' + - 'Black Forest Labs' + - 'Cerebras' + - 'Chutes' + - 'Cirrascale' + - 'Clarifai' + - 'Cloudflare' + - 'Cohere' + - 'Crucible' + - 'Crusoe' + - 'Darkbloom' + - 'Decart' + - 'Deepgram' + - 'DeepInfra' + - 'DeepSeek' + - 'DekaLLM' + - 'DigitalOcean' + - 'Featherless' + - 'Fireworks' + - 'Friendli' + - 'GMICloud' + - 'Google' + - 'Google AI Studio' + - 'Groq' + - 'HeyGen' + - 'Inception' + - 'Inceptron' + - 'InferenceNet' + - 'Ionstream' + - 'Infermatic' + - 'Io Net' + - 'Inferact vLLM' + - 'Inflection' + - 'Liquid' + - 'Mara' + - 'Mancer 2' + - 'Meta' + - 'Minimax' + - 'ModelRun' + - 'Mistral' + - 'Modular' + - 'Moonshot AI' + - 'Morph' + - 'NCompass' + - 'Nebius' + - 'Nex AGI' + - 'NextBit' + - 'Novita' + - 'Nvidia' + - 'OpenAI' + - 'OpenInference' + - 'Parasail' + - 'Poolside' + - 'Perceptron' + - 'Perplexity' + - 'Phala' + - 'Recraft' + - 'Reka' + - 'Relace' + - 'Sail Research' + - 'Sakana AI' + - 'SambaNova' + - 'Seed' + - 'SiliconFlow' + - 'Sourceful' + - 'StepFun' + - 'Stealth' + - 'StreamLake' + - 'Switchpoint' + - 'Tencent' + - 'Tenstorrent' + - 'Together' + - 'Upstage' + - 'Venice' + - 'Wafer' + - 'WandB' + - 'Quiver' + - 'Krea' + - 'Xiaomi' + - 'xAI' + - 'Z.AI' + - 'FakeProvider' + type: 'string' x-speakeasy-unknown-values: allow role: enum: - - assistant - type: string + - 'assistant' + type: 'string' stop_details: $ref: '#/components/schemas/AnthropicRefusalStopDetails' - stop_reason: - nullable: true - stop_sequence: - nullable: true + stop_reason: {} + stop_sequence: {} type: enum: - - message - type: string + - 'message' + type: 'string' usage: allOf: - $ref: '#/components/schemas/AnthropicUsage' @@ -12984,10 +13165,10 @@ components: iterations: items: $ref: '#/components/schemas/AnthropicUsageIteration' - type: array + type: 'array' speed: $ref: '#/components/schemas/AnthropicSpeed' - type: object + type: 'object' example: cache_creation: null cache_creation_input_tokens: null @@ -12995,44 +13176,45 @@ components: inference_geo: null input_tokens: 100 output_tokens: 50 + output_tokens_details: null server_tool_use: null - service_tier: standard + service_tier: 'standard' required: - - id - - type - - role - - container - - content - - model - - stop_reason - - stop_details - - stop_sequence - - usage - type: object - type: - enum: - - message_start - type: string - required: - - type - - message - type: object + - 'id' + - 'type' + - 'role' + - 'container' + - 'content' + - 'model' + - 'stop_reason' + - 'stop_details' + - 'stop_sequence' + - 'usage' + type: 'object' + type: + enum: + - 'message_start' + type: 'string' + required: + - 'type' + - 'message' + type: 'object' MessagesStopEvent: - description: Event sent when the message is complete + description: 'Event sent when the message is complete' example: - type: message_stop + type: 'message_stop' properties: openrouter_metadata: $ref: '#/components/schemas/OpenRouterMetadata' type: enum: - - message_stop - type: string + - 'message_stop' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' MessagesStreamEvents: - description: Union of all possible streaming events + description: 'Union of all possible streaming events' discriminator: mapping: content_block_delta: '#/components/schemas/MessagesContentBlockDeltaEvent' @@ -13043,13 +13225,13 @@ components: message_start: '#/components/schemas/MessagesStartEvent' message_stop: '#/components/schemas/MessagesStopEvent' ping: '#/components/schemas/MessagesPingEvent' - propertyName: type + propertyName: 'type' example: delta: - text: Hello - type: text_delta + text: 'Hello' + type: 'text_delta' index: 0 - type: content_block_delta + type: 'content_block_delta' oneOf: - $ref: '#/components/schemas/MessagesStartEvent' - $ref: '#/components/schemas/MessagesDeltaEvent' @@ -13063,50 +13245,50 @@ components: example: data: delta: - text: Hello - type: text_delta + text: 'Hello' + type: 'text_delta' index: 0 - type: content_block_delta - event: content_block_delta + type: 'content_block_delta' + event: 'content_block_delta' properties: data: $ref: '#/components/schemas/MessagesStreamEvents' event: - type: string + type: 'string' required: - - event - - data - type: object + - 'event' + - 'data' + type: 'object' MetadataLevel: - description: Opt-in level for surfacing routing metadata on the response under `openrouter_metadata`. + description: 'Opt-in level for surfacing routing metadata on the response under `openrouter_metadata`.' enum: - - disabled - - enabled - example: enabled - type: string + - 'disabled' + - 'enabled' + example: 'enabled' + type: 'string' x-speakeasy-unknown-values: allow Model: - description: Information about an AI model available on OpenRouter + description: 'Information about an AI model available on OpenRouter' example: architecture: input_modalities: - - text - instruct_type: chatml - modality: text->text + - 'text' + instruct_type: 'chatml' + modality: 'text->text' output_modalities: - - text - tokenizer: GPT - canonical_slug: openai/gpt-4 + - 'text' + tokenizer: 'GPT' + canonical_slug: 'openai/gpt-4' context_length: 8192 created: 1692901234 default_parameters: null - description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy. + description: 'GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.' expiration_date: null - id: openai/gpt-4 + id: 'openai/gpt-4' knowledge_cutoff: null links: - details: /api/v1/models/openai/gpt-5.4/endpoints - name: GPT-4 + details: '/api/v1/models/openai/gpt-5.4/endpoints' + name: 'GPT-4' per_request_limits: null pricing: completion: '0.00006' @@ -13114,18 +13296,18 @@ components: prompt: '0.00003' request: '0' reasoning: - default_effort: medium + default_effort: 'medium' default_enabled: true mandatory: false supported_efforts: - - high - - medium - - low - - minimal + - 'high' + - 'medium' + - 'low' + - 'minimal' supported_parameters: - - temperature - - top_p - - max_tokens + - 'temperature' + - 'top_p' + - 'max_tokens' supported_voices: null top_provider: context_length: 8192 @@ -13137,49 +13319,53 @@ components: benchmarks: $ref: '#/components/schemas/ModelBenchmarks' canonical_slug: - description: Canonical slug for the model - example: openai/gpt-4 - type: string + description: 'Canonical slug for the model' + example: 'openai/gpt-4' + type: 'string' context_length: - description: Maximum context length in tokens + description: 'Maximum context length in tokens' example: 8192 - nullable: true - type: integer + type: + - 'integer' + - 'null' created: - description: Unix timestamp of when the model was created + description: 'Unix timestamp of when the model was created' example: 1692901234 - type: integer + type: 'integer' default_parameters: $ref: '#/components/schemas/DefaultParameters' description: - description: Description of the model - example: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy. - type: string + description: 'Description of the model' + example: 'GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.' + type: 'string' expiration_date: - description: The date after which the model may be removed. ISO 8601 date string (YYYY-MM-DD) or null if no expiration. + description: 'The date after which the model may be removed. ISO 8601 date string (YYYY-MM-DD) or null if no expiration.' example: '2025-06-01' - nullable: true - type: string + type: + - 'string' + - 'null' hugging_face_id: - description: Hugging Face model identifier, if applicable - example: microsoft/DialoGPT-medium - nullable: true - type: string + description: 'Hugging Face model identifier, if applicable' + example: 'microsoft/DialoGPT-medium' + type: + - 'string' + - 'null' id: - description: Unique identifier for the model - example: openai/gpt-4 - type: string + description: 'Unique identifier for the model' + example: 'openai/gpt-4' + type: 'string' knowledge_cutoff: - description: The date up to which the model was trained on data. ISO 8601 date string (YYYY-MM-DD) or null if unknown. + description: 'The date up to which the model was trained on data. ISO 8601 date string (YYYY-MM-DD) or null if unknown.' example: '2024-10-01' - nullable: true - type: string + type: + - 'string' + - 'null' links: $ref: '#/components/schemas/ModelLinks' name: - description: Display name of the model - example: GPT-4 - type: string + description: 'Display name of the model' + example: 'GPT-4' + type: 'string' per_request_limits: $ref: '#/components/schemas/PerRequestLimits' pricing: @@ -13187,79 +13373,81 @@ components: reasoning: $ref: '#/components/schemas/ModelReasoning' supported_parameters: - description: List of supported parameters for this model + description: 'List of supported parameters for this model' items: $ref: '#/components/schemas/Parameter' - type: array + type: 'array' supported_voices: - description: List of supported voice identifiers for TTS models. Null for non-TTS models. + description: 'List of supported voice identifiers for TTS models. Null for non-TTS models.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' top_provider: $ref: '#/components/schemas/TopProviderInfo' required: - - id - - canonical_slug - - name - - created - - pricing - - context_length - - architecture - - top_provider - - per_request_limits - - supported_parameters - - default_parameters - - supported_voices - - links - type: object + - 'id' + - 'canonical_slug' + - 'name' + - 'created' + - 'pricing' + - 'context_length' + - 'architecture' + - 'top_provider' + - 'per_request_limits' + - 'supported_parameters' + - 'default_parameters' + - 'supported_voices' + - 'links' + type: 'object' ModelArchitecture: - description: Model architecture information + description: 'Model architecture information' example: input_modalities: - - text - instruct_type: chatml - modality: text->text + - 'text' + instruct_type: 'chatml' + modality: 'text->text' output_modalities: - - text - tokenizer: GPT + - 'text' + tokenizer: 'GPT' properties: input_modalities: - description: Supported input modalities + description: 'Supported input modalities' items: $ref: '#/components/schemas/InputModality' - type: array + type: 'array' instruct_type: $ref: '#/components/schemas/InstructType' modality: - description: Primary modality of the model - example: text->text - nullable: true - type: string + description: 'Primary modality of the model' + example: 'text->text' + type: + - 'string' + - 'null' output_modalities: - description: Supported output modalities + description: 'Supported output modalities' items: $ref: '#/components/schemas/OutputModality' - type: array + type: 'array' tokenizer: $ref: '#/components/schemas/ModelGroup' required: - - modality - - input_modalities - - output_modalities - type: object + - 'modality' + - 'input_modalities' + - 'output_modalities' + type: 'object' ModelBenchmarks: - description: Third-party benchmark rankings for this model. Omitted when no benchmark data is available. + description: 'Third-party benchmark rankings for this model. Omitted when no benchmark data is available.' example: artificial_analysis: agentic_index: 55.8 coding_index: 63.2 intelligence_index: 71.4 design_arena: - - arena: models - category: website + - arena: 'models' + category: 'website' elo: 1385.2 rank: 5 win_rate: 62.5 @@ -13267,115 +13455,119 @@ components: artificial_analysis: $ref: '#/components/schemas/AABenchmarkEntry' design_arena: - description: Design Arena ELO rankings across arena+category pairs. + description: 'Design Arena ELO rankings across arena+category pairs.' example: - - arena: models - category: website + - arena: 'models' + category: 'website' elo: 1385.2 rank: 5 win_rate: 62.5 items: $ref: '#/components/schemas/DABenchmarkEntry' - type: array + type: 'array' required: - - design_arena - type: object + - 'design_arena' + type: 'object' ModelGroup: - description: Tokenizer type used by the model + description: 'Tokenizer type used by the model' enum: - - Router - - Media - - Other - - GPT - - Claude - - Gemini - - Gemma - - Grok - - Cohere - - Nova - - Qwen - - Yi - - DeepSeek - - Mistral - - Llama2 - - Llama3 - - Llama4 - - PaLM - - RWKV - - Qwen3 - example: GPT - type: string + - 'Router' + - 'Media' + - 'Other' + - 'GPT' + - 'Claude' + - 'Gemini' + - 'Gemma' + - 'Grok' + - 'Cohere' + - 'Nova' + - 'Qwen' + - 'Yi' + - 'DeepSeek' + - 'Mistral' + - 'Llama2' + - 'Llama3' + - 'Llama4' + - 'PaLM' + - 'RWKV' + - 'Qwen3' + example: 'GPT' + type: 'string' x-speakeasy-unknown-values: allow ModelLinks: - description: Related API endpoints and resources for this model. + description: 'Related API endpoints and resources for this model.' example: - details: /api/v1/models/openai/gpt-5.4/endpoints + details: '/api/v1/models/openai/gpt-5.4/endpoints' properties: details: - description: URL for the model details/endpoints API - example: /api/v1/models/openai/gpt-5.4/endpoints - type: string + description: 'URL for the model details/endpoints API' + example: '/api/v1/models/openai/gpt-5.4/endpoints' + type: 'string' required: - - details - type: object + - 'details' + type: 'object' ModelName: - description: Model to use for completion - example: openai/gpt-4 - type: string + description: 'Model to use for completion' + example: 'openai/gpt-4' + type: 'string' ModelReasoning: - description: Reasoning effort configuration. Omitted for non-reasoning models and dynamic router models. + description: 'Reasoning effort configuration. Omitted for non-reasoning models and dynamic router models.' example: - default_effort: medium + default_effort: 'medium' default_enabled: true mandatory: false supported_efforts: - - high - - medium - - low - - minimal + - 'high' + - 'medium' + - 'low' + - 'minimal' properties: default_effort: allOf: - $ref: '#/components/schemas/ReasoningEffort' - - description: >- - Default reasoning effort when the client enables reasoning without specifying effort. Maps to `reasoning.effort` in chat requests. When `"none"`, prefer omitting effort unless the user explicitly disables reasoning. + - description: 'Default reasoning effort when the client enables reasoning without specifying effort. Maps to `reasoning.effort` in chat requests. When `"none"`, prefer omitting effort unless the user explicitly disables reasoning.' default_enabled: - description: Default reasoning enabled state when the client does not set `reasoning.enabled`. - type: boolean + description: 'Default reasoning enabled state when the client does not set `reasoning.enabled`.' + type: 'boolean' mandatory: - description: When true, reasoning cannot be disabled and effort "none" is rejected. - type: boolean + description: 'When true, reasoning cannot be disabled and effort "none" is rejected.' + type: 'boolean' supported_efforts: - description: >- - Allowed reasoning effort values for this model, in descending effort order (highest first). Null means no allowlist — all gateway effort values are accepted. + description: 'Allowed reasoning effort values for this model, in descending effort order (highest first). Null means no allowlist — all gateway effort values are accepted.' items: $ref: '#/components/schemas/ReasoningEffort' - nullable: true - type: array + type: + - 'array' + - 'null' supports_max_tokens: - description: >- - Present and `true` when the model accepts `reasoning.max_tokens` in requests (Anthropic-style) instead of or in addition to `reasoning.effort`. Omitted otherwise. - type: boolean + description: 'Present and `true` when the model accepts `reasoning.max_tokens` in requests (Anthropic-style) instead of or in addition to `reasoning.effort`. Omitted otherwise.' + type: 'boolean' required: - - mandatory - type: object + - 'mandatory' + type: 'object' ModelResponse: - description: Single model response + description: 'Single model response' example: data: architecture: input_modalities: - - text - instruct_type: chatml - modality: text->text + - 'text' + instruct_type: 'chatml' + modality: 'text->text' output_modalities: - - text - tokenizer: GPT + - 'text' + tokenizer: 'GPT' + canonical_slug: 'openai/gpt-4' context_length: 8192 created: 1692901234 - description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy. - id: openai/gpt-4 - name: GPT-4 + default_parameters: null + description: 'GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.' + expiration_date: null + id: 'openai/gpt-4' + knowledge_cutoff: null + links: + details: '/api/v1/models/openai/gpt-4/endpoints' + name: 'GPT-4' per_request_limits: null pricing: completion: '0.00006' @@ -13383,9 +13575,10 @@ components: prompt: '0.00003' request: '0' supported_parameters: - - temperature - - top_p - - max_tokens + - 'temperature' + - 'top_p' + - 'max_tokens' + supported_voices: null top_provider: context_length: 8192 is_moderated: true @@ -13394,52 +13587,52 @@ components: data: $ref: '#/components/schemas/Model' required: - - data - type: object + - 'data' + type: 'object' ModelsCountResponse: - description: Model count data + description: 'Model count data' example: data: count: 150 properties: data: - description: Model count data + description: 'Model count data' example: count: 150 properties: count: - description: Total number of available models + description: 'Total number of available models' example: 150 - type: integer + type: 'integer' required: - - count - type: object + - 'count' + type: 'object' required: - - data - type: object + - 'data' + type: 'object' ModelsListResponse: - description: List of available models + description: 'List of available models' example: data: - architecture: input_modalities: - - text - instruct_type: chatml - modality: text->text + - 'text' + instruct_type: 'chatml' + modality: 'text->text' output_modalities: - - text - tokenizer: GPT - canonical_slug: openai/gpt-4 + - 'text' + tokenizer: 'GPT' + canonical_slug: 'openai/gpt-4' context_length: 8192 created: 1692901234 default_parameters: null - description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy. + description: 'GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.' expiration_date: null - id: openai/gpt-4 + id: 'openai/gpt-4' knowledge_cutoff: null links: - details: /api/v1/models/openai/gpt-4/endpoints - name: GPT-4 + details: '/api/v1/models/openai/gpt-4/endpoints' + name: 'GPT-4' per_request_limits: null pricing: completion: '0.00006' @@ -13447,64 +13640,65 @@ components: prompt: '0.00003' request: '0' supported_parameters: - - temperature - - top_p - - max_tokens - - frequency_penalty - - presence_penalty + - 'temperature' + - 'top_p' + - 'max_tokens' + - 'frequency_penalty' + - 'presence_penalty' supported_voices: null top_provider: context_length: 8192 is_moderated: true max_completion_tokens: 4096 links: - next: /api/v1/models?offset=500&limit=500 + next: '/api/v1/models?offset=500&limit=500' total_count: 150 properties: data: $ref: '#/components/schemas/ModelsListResponseData' links: - description: Pagination links + description: 'Pagination links' properties: next: - description: URL for the next page of results, or null if this is the last page - example: /api/v1/models?offset=500&limit=500 - nullable: true - type: string + description: 'URL for the next page of results, or null if this is the last page' + example: '/api/v1/models?offset=500&limit=500' + type: + - 'string' + - 'null' required: - - next - type: object + - 'next' + type: 'object' total_count: - description: Total number of models matching the query + description: 'Total number of models matching the query' example: 150 - type: integer + type: 'integer' required: - - data - - total_count - - links - type: object + - 'data' + - 'total_count' + - 'links' + type: 'object' ModelsListResponseData: - description: List of available models + description: 'List of available models' example: - architecture: input_modalities: - - text - instruct_type: chatml - modality: text->text + - 'text' + instruct_type: 'chatml' + modality: 'text->text' output_modalities: - - text - tokenizer: GPT - canonical_slug: openai/gpt-4 + - 'text' + tokenizer: 'GPT' + canonical_slug: 'openai/gpt-4' context_length: 8192 created: 1692901234 default_parameters: null - description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy. + description: 'GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.' expiration_date: null - id: openai/gpt-4 + id: 'openai/gpt-4' knowledge_cutoff: null links: - details: /api/v1/models/openai/gpt-4/endpoints - name: GPT-4 + details: '/api/v1/models/openai/gpt-4/endpoints' + name: 'GPT-4' per_request_limits: null pricing: completion: '0.00006' @@ -13512,9 +13706,9 @@ components: prompt: '0.00003' request: '0' supported_parameters: - - temperature - - top_p - - max_tokens + - 'temperature' + - 'top_p' + - 'max_tokens' supported_voices: null top_provider: context_length: 8192 @@ -13522,571 +13716,578 @@ components: max_completion_tokens: 4096 items: $ref: '#/components/schemas/Model' - type: array + type: 'array' ModerationPlugin: example: - id: moderation + id: 'moderation' properties: id: enum: - - moderation - type: string + - 'moderation' + type: 'string' required: - - id - type: object + - 'id' + type: 'object' MultimodalMedia: example: - data: data:audio/wav;base64,UklGRiQAAABXQVZFZm10IBAAAAA... - format: wav + data: 'data:audio/wav;base64,UklGRiQAAABXQVZFZm10IBAAAAA...' + format: 'wav' properties: data: - type: string + type: 'string' format: - type: string + type: 'string' required: - - data - type: object + - 'data' + type: 'object' NamespaceFunctionTool: - description: A function tool grouped inside a namespace tool + description: 'A function tool grouped inside a namespace tool' example: - name: spawn_agent - type: function + name: 'spawn_agent' + type: 'function' properties: allowed_callers: items: enum: - - direct - - programmatic - type: string + - 'direct' + - 'programmatic' + type: 'string' x-speakeasy-unknown-values: allow - nullable: true - type: array + type: + - 'array' + - 'null' defer_loading: - type: boolean + type: 'boolean' description: - nullable: true - type: string + type: + - 'string' + - 'null' name: - type: string + type: 'string' output_schema: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' parameters: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' strict: - nullable: true - type: boolean + type: + - 'boolean' + - 'null' type: enum: - - function - type: string + - 'function' + type: 'string' required: - - type - - name - type: object + - 'type' + - 'name' + type: 'object' NamespaceTool: - description: Groups function/custom tools under a shared namespace + description: 'Groups function/custom tools under a shared namespace' example: - description: Tools for spawning and managing sub-agents. - name: multi_agent_v1 + description: 'Tools for spawning and managing sub-agents.' + name: 'multi_agent_v1' tools: - - name: spawn_agent - type: function - type: namespace + - name: 'spawn_agent' + type: 'function' + type: 'namespace' properties: description: - type: string + type: 'string' name: - type: string + type: 'string' tools: items: anyOf: - $ref: '#/components/schemas/NamespaceFunctionTool' - $ref: '#/components/schemas/CustomTool' - type: array + type: 'array' type: enum: - - namespace - type: string + - 'namespace' + type: 'string' required: - - type - - name - - description - - tools - type: object + - 'type' + - 'name' + - 'description' + - 'tools' + type: 'object' NotFoundResponse: - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' example: error: code: 404 - message: Resource not found + message: 'Resource not found' properties: error: $ref: '#/components/schemas/NotFoundResponseErrorData' openrouter_metadata: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' user_id: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - error - type: object + - 'error' + type: 'object' NotFoundResponseErrorData: - description: Error data for NotFoundResponse + description: 'Error data for NotFoundResponse' example: code: 404 - message: Resource not found + message: 'Resource not found' properties: code: - type: integer + type: 'integer' message: - type: string + type: 'string' metadata: - additionalProperties: - nullable: true - nullable: true - type: object - required: - - code - - message - type: object + additionalProperties: {} + type: + - 'object' + - 'null' + required: + - 'code' + - 'message' + type: 'object' ObservabilityArizeDestination: example: api_key_hashes: null config: - apiKey: arize_...AbCd - baseUrl: https://otlp.arize.com - modelId: openrouter-prod - spaceKey: space_...EfGh + apiKey: 'arize_...AbCd' + baseUrl: 'https://otlp.arize.com' + modelId: 'openrouter-prod' + spaceKey: 'space_...EfGh' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Arize + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Arize' privacy_mode: false sampling_rate: 1 - type: arize + type: 'arize' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' config: properties: apiKey: minLength: 1 - type: string + type: 'string' baseUrl: - default: https://otlp.arize.com - type: string + default: 'https://otlp.arize.com' + type: 'string' headers: additionalProperties: - type: string - description: Custom HTTP headers to include in requests to this destination. - type: object + type: 'string' + description: 'Custom HTTP headers to include in requests to this destination.' + type: 'object' modelId: - description: The name of the tracing project in Arize AX + description: 'The name of the tracing project in Arize AX' minLength: 1 - type: string + type: 'string' spaceKey: minLength: 1 - type: string + type: 'string' required: - - apiKey - - spaceKey - - modelId - type: object + - 'apiKey' + - 'spaceKey' + - 'modelId' + type: 'object' created_at: - description: ISO timestamp of when the destination was created. + description: 'ISO timestamp of when the destination was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' enabled: - description: Whether this destination is currently enabled. + description: 'Whether this destination is currently enabled.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfig' id: - description: Stable public identifier for this destination. - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'Stable public identifier for this destination.' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' name: - description: Human-readable name for the destination. - example: Production Langfuse - nullable: true - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: + - 'string' + - 'null' privacy_mode: - description: When true, request/response bodies are not forwarded to this destination — only metadata. + description: 'When true, request/response bodies are not forwarded to this destination — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number + format: 'double' + type: 'number' type: enum: - - arize - type: string + - 'arize' + type: 'string' updated_at: - description: ISO timestamp of when the destination was last updated. + description: 'ISO timestamp of when the destination was last updated.' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace this destination belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - name - - enabled - - privacy_mode - - sampling_rate - - api_key_hashes - - filter_rules - - created_at - - updated_at - - type - - config - type: object + description: 'ID of the workspace this destination belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'name' + - 'enabled' + - 'privacy_mode' + - 'sampling_rate' + - 'api_key_hashes' + - 'filter_rules' + - 'created_at' + - 'updated_at' + - 'type' + - 'config' + type: 'object' ObservabilityBraintrustDestination: example: api_key_hashes: null config: - apiKey: sk-...AbCd - baseUrl: https://api.braintrust.dev - projectId: proj_... + apiKey: 'sk-...AbCd' + baseUrl: 'https://api.braintrust.dev' + projectId: 'proj_...' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Braintrust + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Braintrust' privacy_mode: false sampling_rate: 1 - type: braintrust + type: 'braintrust' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' config: properties: apiKey: minLength: 1 - type: string + type: 'string' baseUrl: - default: https://api.braintrust.dev - type: string + default: 'https://api.braintrust.dev' + type: 'string' headers: additionalProperties: - type: string - description: Custom HTTP headers to include in requests to this destination. - type: object + type: 'string' + description: 'Custom HTTP headers to include in requests to this destination.' + type: 'object' projectId: minLength: 1 - type: string + type: 'string' required: - - apiKey - - projectId - type: object + - 'apiKey' + - 'projectId' + type: 'object' created_at: - description: ISO timestamp of when the destination was created. + description: 'ISO timestamp of when the destination was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' enabled: - description: Whether this destination is currently enabled. + description: 'Whether this destination is currently enabled.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfig' id: - description: Stable public identifier for this destination. - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'Stable public identifier for this destination.' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' name: - description: Human-readable name for the destination. - example: Production Langfuse - nullable: true - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: + - 'string' + - 'null' privacy_mode: - description: When true, request/response bodies are not forwarded to this destination — only metadata. + description: 'When true, request/response bodies are not forwarded to this destination — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number + format: 'double' + type: 'number' type: enum: - - braintrust - type: string + - 'braintrust' + type: 'string' updated_at: - description: ISO timestamp of when the destination was last updated. + description: 'ISO timestamp of when the destination was last updated.' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace this destination belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - name - - enabled - - privacy_mode - - sampling_rate - - api_key_hashes - - filter_rules - - created_at - - updated_at - - type - - config - type: object + description: 'ID of the workspace this destination belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'name' + - 'enabled' + - 'privacy_mode' + - 'sampling_rate' + - 'api_key_hashes' + - 'filter_rules' + - 'created_at' + - 'updated_at' + - 'type' + - 'config' + type: 'object' ObservabilityClickhouseDestination: example: api_key_hashes: null config: - database: analytics - host: https://clickhouse.example.com:8123 + database: 'analytics' + host: 'https://clickhouse.example.com:8123' password: '********' - table: OPENROUTER_TRACES - username: default + table: 'OPENROUTER_TRACES' + username: 'default' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production ClickHouse + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production ClickHouse' privacy_mode: false sampling_rate: 1 - type: clickhouse + type: 'clickhouse' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' config: properties: database: minLength: 1 - type: string + type: 'string' headers: additionalProperties: - type: string - description: Custom HTTP headers to include in requests to this destination. - type: object + type: 'string' + description: 'Custom HTTP headers to include in requests to this destination.' + type: 'object' host: minLength: 1 - type: string + type: 'string' password: minLength: 1 - type: string + type: 'string' table: - default: OPENROUTER_TRACES - type: string + default: 'OPENROUTER_TRACES' + type: 'string' username: - description: If you have not set a specific username in ClickHouse, simply type in 'default' below. + description: 'If you have not set a specific username in ClickHouse, simply type in ''default'' below.' minLength: 1 - type: string + type: 'string' required: - - host - - database - - username - - password - type: object + - 'host' + - 'database' + - 'username' + - 'password' + type: 'object' created_at: - description: ISO timestamp of when the destination was created. + description: 'ISO timestamp of when the destination was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' enabled: - description: Whether this destination is currently enabled. + description: 'Whether this destination is currently enabled.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfig' id: - description: Stable public identifier for this destination. - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'Stable public identifier for this destination.' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' name: - description: Human-readable name for the destination. - example: Production Langfuse - nullable: true - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: + - 'string' + - 'null' privacy_mode: - description: When true, request/response bodies are not forwarded to this destination — only metadata. + description: 'When true, request/response bodies are not forwarded to this destination — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number + format: 'double' + type: 'number' type: enum: - - clickhouse - type: string + - 'clickhouse' + type: 'string' updated_at: - description: ISO timestamp of when the destination was last updated. + description: 'ISO timestamp of when the destination was last updated.' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace this destination belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - name - - enabled - - privacy_mode - - sampling_rate - - api_key_hashes - - filter_rules - - created_at - - updated_at - - type - - config - type: object + description: 'ID of the workspace this destination belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'name' + - 'enabled' + - 'privacy_mode' + - 'sampling_rate' + - 'api_key_hashes' + - 'filter_rules' + - 'created_at' + - 'updated_at' + - 'type' + - 'config' + type: 'object' ObservabilityDatadogDestination: example: api_key_hashes: null config: apiKey: '************...AbCd' - mlApp: my-llm-app - url: https://api.us5.datadoghq.com + mlApp: 'my-llm-app' + url: 'https://api.us5.datadoghq.com' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Datadog + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Datadog' privacy_mode: false sampling_rate: 1 - type: datadog + type: 'datadog' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' config: properties: apiKey: description: 'Datadog API key must have LLM Observability permissions. Create at: ' minLength: 1 - type: string + type: 'string' headers: additionalProperties: - type: string - description: Custom HTTP headers to include in requests to this destination. - type: object + type: 'string' + description: 'Custom HTTP headers to include in requests to this destination.' + type: 'object' mlApp: - description: Name to identify your application in Datadog LLM Observability + description: 'Name to identify your application in Datadog LLM Observability' minLength: 1 - type: string + type: 'string' url: - default: https://api.us5.datadoghq.com - description: >- - Datadog API URL for your region (e.g., https://api.datadoghq.com, https://api.us3.datadoghq.com, https://api.datadoghq.eu) - type: string + default: 'https://api.us5.datadoghq.com' + description: 'Datadog API URL for your region (e.g., https://api.datadoghq.com, https://api.us3.datadoghq.com, https://api.datadoghq.eu)' + type: 'string' required: - - apiKey - - mlApp - type: object + - 'apiKey' + - 'mlApp' + type: 'object' created_at: - description: ISO timestamp of when the destination was created. + description: 'ISO timestamp of when the destination was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' enabled: - description: Whether this destination is currently enabled. + description: 'Whether this destination is currently enabled.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfig' id: - description: Stable public identifier for this destination. - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'Stable public identifier for this destination.' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' name: - description: Human-readable name for the destination. - example: Production Langfuse - nullable: true - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: + - 'string' + - 'null' privacy_mode: - description: When true, request/response bodies are not forwarded to this destination — only metadata. + description: 'When true, request/response bodies are not forwarded to this destination — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number + format: 'double' + type: 'number' type: enum: - - datadog - type: string + - 'datadog' + type: 'string' updated_at: - description: ISO timestamp of when the destination was last updated. + description: 'ISO timestamp of when the destination was last updated.' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace this destination belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - name - - enabled - - privacy_mode - - sampling_rate - - api_key_hashes - - filter_rules - - created_at - - updated_at - - type - - config - type: object + description: 'ID of the workspace this destination belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'name' + - 'enabled' + - 'privacy_mode' + - 'sampling_rate' + - 'api_key_hashes' + - 'filter_rules' + - 'created_at' + - 'updated_at' + - 'type' + - 'config' + type: 'object' ObservabilityDestination: discriminator: mapping: @@ -14107,23 +14308,23 @@ components: snowflake: '#/components/schemas/ObservabilitySnowflakeDestination' weave: '#/components/schemas/ObservabilityWeaveDestination' webhook: '#/components/schemas/ObservabilityWebhookDestination' - propertyName: type + propertyName: 'type' example: api_key_hashes: null config: - baseUrl: https://us.cloud.langfuse.com - publicKey: pk-l...EfGh - secretKey: sk-l...AbCd + baseUrl: 'https://us.cloud.langfuse.com' + publicKey: 'pk-l...EfGh' + secretKey: 'sk-l...AbCd' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Langfuse + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Langfuse' privacy_mode: false sampling_rate: 1 - type: langfuse + type: 'langfuse' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' oneOf: - $ref: '#/components/schemas/ObservabilityArizeDestination' - $ref: '#/components/schemas/ObservabilityBraintrustDestination' @@ -14144,1575 +14345,1587 @@ components: - $ref: '#/components/schemas/ObservabilityWebhookDestination' ObservabilityFilterRuleGroup: example: - logic: and + logic: 'and' rules: - - field: model - operator: equals - value: openai/gpt-4o + - field: 'model' + operator: 'equals' + value: 'openai/gpt-4o' properties: logic: - default: and + default: 'and' enum: - - and - - or - type: string + - 'and' + - 'or' + type: 'string' x-speakeasy-unknown-values: allow rules: items: properties: field: enum: - - model - - provider - - session_id - - user_id - - api_key_name - - finish_reason - - input - - output - - total_cost - - total_tokens - - prompt_tokens - - completion_tokens - type: string + - 'model' + - 'provider' + - 'session_id' + - 'user_id' + - 'api_key_name' + - 'finish_reason' + - 'input' + - 'output' + - 'total_cost' + - 'total_tokens' + - 'prompt_tokens' + - 'completion_tokens' + type: 'string' x-speakeasy-unknown-values: allow operator: enum: - - equals - - not_equals - - contains - - not_contains - - regex - - starts_with - - ends_with - - gt - - lt - - gte - - lte - - exists - - not_exists - type: string + - 'equals' + - 'not_equals' + - 'contains' + - 'not_contains' + - 'regex' + - 'starts_with' + - 'ends_with' + - 'gt' + - 'lt' + - 'gte' + - 'lte' + - 'exists' + - 'not_exists' + type: 'string' x-speakeasy-unknown-values: allow value: anyOf: - - type: string - - type: number + - type: 'string' + - type: 'number' required: - - field - - operator - type: object - type: array + - 'field' + - 'operator' + type: 'object' + type: 'array' required: - - rules - type: object + - 'rules' + type: 'object' ObservabilityFilterRulesConfig: - description: Optional structured filter rules controlling which events are forwarded. + description: 'Optional structured filter rules controlling which events are forwarded.' example: null - nullable: true properties: enabled: default: true - type: boolean + type: 'boolean' groups: items: $ref: '#/components/schemas/ObservabilityFilterRuleGroup' - type: array + type: 'array' required: - - groups - type: object + - 'groups' + type: + - 'object' + - 'null' ObservabilityFilterRulesConfigNullable: - description: Optional structured filter rules controlling which events are forwarded. + description: 'Optional structured filter rules controlling which events are forwarded.' example: null - nullable: true properties: enabled: default: true - type: boolean + type: 'boolean' groups: items: $ref: '#/components/schemas/ObservabilityFilterRuleGroup' - type: array + type: 'array' required: - - groups - type: object + - 'groups' + type: + - 'object' + - 'null' ObservabilityGrafanaDestination: example: api_key_hashes: null config: - apiKey: glc_...AbCd - baseUrl: https://otlp-gateway-prod-us-west-0.grafana.net + apiKey: 'glc_...AbCd' + baseUrl: 'https://otlp-gateway-prod-us-west-0.grafana.net' instanceId: '123456' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Grafana + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Grafana' privacy_mode: false sampling_rate: 1 - type: grafana + type: 'grafana' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' config: properties: apiKey: minLength: 1 - type: string + type: 'string' baseUrl: - default: https://otlp-gateway-prod-us-west-0.grafana.net - type: string + default: 'https://otlp-gateway-prod-us-west-0.grafana.net' + type: 'string' headers: additionalProperties: - type: string - description: Custom HTTP headers to include in requests to this destination. - type: object + type: 'string' + description: 'Custom HTTP headers to include in requests to this destination.' + type: 'object' instanceId: minLength: 1 - type: string + type: 'string' required: - - apiKey - - instanceId - type: object + - 'apiKey' + - 'instanceId' + type: 'object' created_at: - description: ISO timestamp of when the destination was created. + description: 'ISO timestamp of when the destination was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' enabled: - description: Whether this destination is currently enabled. + description: 'Whether this destination is currently enabled.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfig' id: - description: Stable public identifier for this destination. - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'Stable public identifier for this destination.' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' name: - description: Human-readable name for the destination. - example: Production Langfuse - nullable: true - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: + - 'string' + - 'null' privacy_mode: - description: When true, request/response bodies are not forwarded to this destination — only metadata. + description: 'When true, request/response bodies are not forwarded to this destination — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number + format: 'double' + type: 'number' type: enum: - - grafana - type: string + - 'grafana' + type: 'string' updated_at: - description: ISO timestamp of when the destination was last updated. + description: 'ISO timestamp of when the destination was last updated.' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace this destination belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - name - - enabled - - privacy_mode - - sampling_rate - - api_key_hashes - - filter_rules - - created_at - - updated_at - - type - - config - type: object + description: 'ID of the workspace this destination belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'name' + - 'enabled' + - 'privacy_mode' + - 'sampling_rate' + - 'api_key_hashes' + - 'filter_rules' + - 'created_at' + - 'updated_at' + - 'type' + - 'config' + type: 'object' ObservabilityLangfuseDestination: example: api_key_hashes: null config: - baseUrl: https://us.cloud.langfuse.com - publicKey: pk-l...EfGh - secretKey: sk-l...AbCd + baseUrl: 'https://us.cloud.langfuse.com' + publicKey: 'pk-l...EfGh' + secretKey: 'sk-l...AbCd' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Langfuse + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Langfuse' privacy_mode: false sampling_rate: 1 - type: langfuse + type: 'langfuse' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' config: properties: baseUrl: - default: https://us.cloud.langfuse.com - type: string + default: 'https://us.cloud.langfuse.com' + type: 'string' headers: additionalProperties: - type: string - description: Custom HTTP headers to include in requests to this destination. - type: object + type: 'string' + description: 'Custom HTTP headers to include in requests to this destination.' + type: 'object' publicKey: minLength: 1 - type: string + type: 'string' secretKey: minLength: 1 - type: string + type: 'string' required: - - secretKey - - publicKey - type: object + - 'secretKey' + - 'publicKey' + type: 'object' created_at: - description: ISO timestamp of when the destination was created. + description: 'ISO timestamp of when the destination was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' enabled: - description: Whether this destination is currently enabled. + description: 'Whether this destination is currently enabled.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfig' id: - description: Stable public identifier for this destination. - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'Stable public identifier for this destination.' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' name: - description: Human-readable name for the destination. - example: Production Langfuse - nullable: true - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: + - 'string' + - 'null' privacy_mode: - description: When true, request/response bodies are not forwarded to this destination — only metadata. + description: 'When true, request/response bodies are not forwarded to this destination — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number + format: 'double' + type: 'number' type: enum: - - langfuse - type: string + - 'langfuse' + type: 'string' updated_at: - description: ISO timestamp of when the destination was last updated. + description: 'ISO timestamp of when the destination was last updated.' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace this destination belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - name - - enabled - - privacy_mode - - sampling_rate - - api_key_hashes - - filter_rules - - created_at - - updated_at - - type - - config - type: object + description: 'ID of the workspace this destination belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'name' + - 'enabled' + - 'privacy_mode' + - 'sampling_rate' + - 'api_key_hashes' + - 'filter_rules' + - 'created_at' + - 'updated_at' + - 'type' + - 'config' + type: 'object' ObservabilityLangsmithDestination: example: api_key_hashes: null config: - apiKey: lsv2_...AbCd - endpoint: https://api.smith.langchain.com - project: main + apiKey: 'lsv2_...AbCd' + endpoint: 'https://api.smith.langchain.com' + project: 'main' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production LangSmith + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production LangSmith' privacy_mode: false sampling_rate: 1 - type: langsmith + type: 'langsmith' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' config: properties: apiKey: minLength: 1 - type: string + type: 'string' endpoint: - default: https://api.smith.langchain.com - type: string + default: 'https://api.smith.langchain.com' + type: 'string' headers: additionalProperties: - type: string - description: Custom HTTP headers to include in requests to this destination. - type: object + type: 'string' + description: 'Custom HTTP headers to include in requests to this destination.' + type: 'object' project: - default: main - description: The name for this project, such as pr-openrouter-demo. Defaults to "main" if not set. + default: 'main' + description: 'The name for this project, such as pr-openrouter-demo. Defaults to "main" if not set.' minLength: 1 - type: string + type: 'string' workspaceId: - description: Required for org-scoped API keys. Find this in your LangSmith workspace settings. - type: string + description: 'Required for org-scoped API keys. Find this in your LangSmith workspace settings.' + type: 'string' required: - - apiKey - type: object + - 'apiKey' + type: 'object' created_at: - description: ISO timestamp of when the destination was created. + description: 'ISO timestamp of when the destination was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' enabled: - description: Whether this destination is currently enabled. + description: 'Whether this destination is currently enabled.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfig' id: - description: Stable public identifier for this destination. - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'Stable public identifier for this destination.' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' name: - description: Human-readable name for the destination. - example: Production Langfuse - nullable: true - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: + - 'string' + - 'null' privacy_mode: - description: When true, request/response bodies are not forwarded to this destination — only metadata. + description: 'When true, request/response bodies are not forwarded to this destination — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number + format: 'double' + type: 'number' type: enum: - - langsmith - type: string + - 'langsmith' + type: 'string' updated_at: - description: ISO timestamp of when the destination was last updated. + description: 'ISO timestamp of when the destination was last updated.' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace this destination belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - name - - enabled - - privacy_mode - - sampling_rate - - api_key_hashes - - filter_rules - - created_at - - updated_at - - type - - config - type: object + description: 'ID of the workspace this destination belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'name' + - 'enabled' + - 'privacy_mode' + - 'sampling_rate' + - 'api_key_hashes' + - 'filter_rules' + - 'created_at' + - 'updated_at' + - 'type' + - 'config' + type: 'object' ObservabilityNewrelicDestination: example: api_key_hashes: null config: licenseKey: '****...AbCd' - region: US + region: 'us' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production New Relic + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production New Relic' privacy_mode: false sampling_rate: 1 - type: newrelic + type: 'newrelic' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' config: properties: headers: additionalProperties: - type: string - description: Custom HTTP headers to include in requests to this destination. - type: object + type: 'string' + description: 'Custom HTTP headers to include in requests to this destination.' + type: 'object' licenseKey: minLength: 1 - type: string + type: 'string' region: - default: us + default: 'us' enum: - - us - - eu - type: string + - 'us' + - 'eu' + type: 'string' x-speakeasy-unknown-values: allow required: - - licenseKey - type: object + - 'licenseKey' + type: 'object' created_at: - description: ISO timestamp of when the destination was created. + description: 'ISO timestamp of when the destination was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' enabled: - description: Whether this destination is currently enabled. + description: 'Whether this destination is currently enabled.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfig' id: - description: Stable public identifier for this destination. - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'Stable public identifier for this destination.' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' name: - description: Human-readable name for the destination. - example: Production Langfuse - nullable: true - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: + - 'string' + - 'null' privacy_mode: - description: When true, request/response bodies are not forwarded to this destination — only metadata. + description: 'When true, request/response bodies are not forwarded to this destination — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number + format: 'double' + type: 'number' type: enum: - - newrelic - type: string + - 'newrelic' + type: 'string' updated_at: - description: ISO timestamp of when the destination was last updated. + description: 'ISO timestamp of when the destination was last updated.' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace this destination belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - name - - enabled - - privacy_mode - - sampling_rate - - api_key_hashes - - filter_rules - - created_at - - updated_at - - type - - config - type: object + description: 'ID of the workspace this destination belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'name' + - 'enabled' + - 'privacy_mode' + - 'sampling_rate' + - 'api_key_hashes' + - 'filter_rules' + - 'created_at' + - 'updated_at' + - 'type' + - 'config' + type: 'object' ObservabilityOpikDestination: example: api_key_hashes: null config: apiKey: '****...AbCd' - projectName: openrouter-prod - workspace: my-workspace + projectName: 'openrouter-prod' + workspace: 'my-workspace' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Opik + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Opik' privacy_mode: false sampling_rate: 1 - type: opik + type: 'opik' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' config: properties: apiKey: minLength: 1 - type: string + type: 'string' headers: additionalProperties: - type: string - description: Custom HTTP headers to include in requests to this destination. - type: object + type: 'string' + description: 'Custom HTTP headers to include in requests to this destination.' + type: 'object' projectName: minLength: 1 - type: string + type: 'string' workspace: minLength: 1 - type: string + type: 'string' required: - - apiKey - - workspace - - projectName - type: object + - 'apiKey' + - 'workspace' + - 'projectName' + type: 'object' created_at: - description: ISO timestamp of when the destination was created. + description: 'ISO timestamp of when the destination was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' enabled: - description: Whether this destination is currently enabled. + description: 'Whether this destination is currently enabled.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfig' id: - description: Stable public identifier for this destination. - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'Stable public identifier for this destination.' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' name: - description: Human-readable name for the destination. - example: Production Langfuse - nullable: true - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: + - 'string' + - 'null' privacy_mode: - description: When true, request/response bodies are not forwarded to this destination — only metadata. + description: 'When true, request/response bodies are not forwarded to this destination — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number + format: 'double' + type: 'number' type: enum: - - opik - type: string + - 'opik' + type: 'string' updated_at: - description: ISO timestamp of when the destination was last updated. + description: 'ISO timestamp of when the destination was last updated.' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace this destination belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - name - - enabled - - privacy_mode - - sampling_rate - - api_key_hashes - - filter_rules - - created_at - - updated_at - - type - - config - type: object + description: 'ID of the workspace this destination belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'name' + - 'enabled' + - 'privacy_mode' + - 'sampling_rate' + - 'api_key_hashes' + - 'filter_rules' + - 'created_at' + - 'updated_at' + - 'type' + - 'config' + type: 'object' ObservabilityOtelCollectorDestination: example: api_key_hashes: null config: - endpoint: https://otel.example.com:4318 + endpoint: 'https://otel.example.com:4318' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production OTel Collector + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production OTel Collector' privacy_mode: false sampling_rate: 1 - type: otel-collector + type: 'otel-collector' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' config: properties: endpoint: - type: string + type: 'string' headers: additionalProperties: - type: string - description: >- - Custom HTTP headers as a JSON object. For Axiom, use {"Authorization": "Bearer xaat-xxx", "X-Axiom-Dataset": "your-dataset"} - type: object + type: 'string' + description: 'Custom HTTP headers as a JSON object. For Axiom, use {"Authorization": "Bearer xaat-xxx", "X-Axiom-Dataset": "your-dataset"}' + type: 'object' required: - - endpoint - type: object + - 'endpoint' + type: 'object' created_at: - description: ISO timestamp of when the destination was created. + description: 'ISO timestamp of when the destination was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' enabled: - description: Whether this destination is currently enabled. + description: 'Whether this destination is currently enabled.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfig' id: - description: Stable public identifier for this destination. - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'Stable public identifier for this destination.' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' name: - description: Human-readable name for the destination. - example: Production Langfuse - nullable: true - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: + - 'string' + - 'null' privacy_mode: - description: When true, request/response bodies are not forwarded to this destination — only metadata. + description: 'When true, request/response bodies are not forwarded to this destination — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number + format: 'double' + type: 'number' type: enum: - - otel-collector - type: string + - 'otel-collector' + type: 'string' updated_at: - description: ISO timestamp of when the destination was last updated. + description: 'ISO timestamp of when the destination was last updated.' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace this destination belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - name - - enabled - - privacy_mode - - sampling_rate - - api_key_hashes - - filter_rules - - created_at - - updated_at - - type - - config - type: object + description: 'ID of the workspace this destination belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'name' + - 'enabled' + - 'privacy_mode' + - 'sampling_rate' + - 'api_key_hashes' + - 'filter_rules' + - 'created_at' + - 'updated_at' + - 'type' + - 'config' + type: 'object' ObservabilityPosthogDestination: example: api_key_hashes: null config: - apiKey: phc_...AbCd - endpoint: https://us.i.posthog.com + apiKey: 'phc_...AbCd' + endpoint: 'https://us.i.posthog.com' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production PostHog + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production PostHog' privacy_mode: false sampling_rate: 1 - type: posthog + type: 'posthog' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' config: properties: apiKey: minLength: 1 - type: string + type: 'string' endpoint: - default: https://us.i.posthog.com - type: string + default: 'https://us.i.posthog.com' + type: 'string' headers: additionalProperties: - type: string - description: Custom HTTP headers to include in requests to this destination. - type: object + type: 'string' + description: 'Custom HTTP headers to include in requests to this destination.' + type: 'object' required: - - apiKey - type: object + - 'apiKey' + type: 'object' created_at: - description: ISO timestamp of when the destination was created. + description: 'ISO timestamp of when the destination was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' enabled: - description: Whether this destination is currently enabled. + description: 'Whether this destination is currently enabled.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfig' id: - description: Stable public identifier for this destination. - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'Stable public identifier for this destination.' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' name: - description: Human-readable name for the destination. - example: Production Langfuse - nullable: true - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: + - 'string' + - 'null' privacy_mode: - description: When true, request/response bodies are not forwarded to this destination — only metadata. + description: 'When true, request/response bodies are not forwarded to this destination — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number + format: 'double' + type: 'number' type: enum: - - posthog - type: string + - 'posthog' + type: 'string' updated_at: - description: ISO timestamp of when the destination was last updated. + description: 'ISO timestamp of when the destination was last updated.' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace this destination belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - name - - enabled - - privacy_mode - - sampling_rate - - api_key_hashes - - filter_rules - - created_at - - updated_at - - type - - config - type: object + description: 'ID of the workspace this destination belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'name' + - 'enabled' + - 'privacy_mode' + - 'sampling_rate' + - 'api_key_hashes' + - 'filter_rules' + - 'created_at' + - 'updated_at' + - 'type' + - 'config' + type: 'object' ObservabilityRampDestination: example: api_key_hashes: null config: - apiKey: rmp_...AbCd - baseUrl: https://api.ramp.com/developer/v1/ai-usage/openrouter + apiKey: 'rmp_...AbCd' + baseUrl: 'https://api.ramp.com/developer/v1/ai-usage/openrouter' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Ramp + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Ramp' privacy_mode: false sampling_rate: 1 - type: ramp + type: 'ramp' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' config: properties: apiKey: - description: Generate this in your Ramp integration settings. + description: 'Generate this in your Ramp integration settings.' minLength: 1 - type: string + type: 'string' baseUrl: - default: https://api.ramp.com/developer/v1/ai-usage/openrouter - type: string + default: 'https://api.ramp.com/developer/v1/ai-usage/openrouter' + type: 'string' headers: additionalProperties: - type: string - description: Custom HTTP headers to include in requests to Ramp. - type: object + type: 'string' + description: 'Custom HTTP headers to include in requests to Ramp.' + type: 'object' required: - - apiKey - type: object + - 'apiKey' + type: 'object' created_at: - description: ISO timestamp of when the destination was created. + description: 'ISO timestamp of when the destination was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' enabled: - description: Whether this destination is currently enabled. + description: 'Whether this destination is currently enabled.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfig' id: - description: Stable public identifier for this destination. - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'Stable public identifier for this destination.' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' name: - description: Human-readable name for the destination. - example: Production Langfuse - nullable: true - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: + - 'string' + - 'null' privacy_mode: - description: When true, request/response bodies are not forwarded to this destination — only metadata. + description: 'When true, request/response bodies are not forwarded to this destination — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number + format: 'double' + type: 'number' type: enum: - - ramp - type: string + - 'ramp' + type: 'string' updated_at: - description: ISO timestamp of when the destination was last updated. + description: 'ISO timestamp of when the destination was last updated.' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace this destination belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - name - - enabled - - privacy_mode - - sampling_rate - - api_key_hashes - - filter_rules - - created_at - - updated_at - - type - - config - type: object + description: 'ID of the workspace this destination belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'name' + - 'enabled' + - 'privacy_mode' + - 'sampling_rate' + - 'api_key_hashes' + - 'filter_rules' + - 'created_at' + - 'updated_at' + - 'type' + - 'config' + type: 'object' ObservabilityS3Destination: example: api_key_hashes: null config: - accessKeyId: AKIA...AbCd - bucketName: openrouter-traces + accessKeyId: 'AKIA...AbCd' + bucketName: 'openrouter-traces' secretAccessKey: '****...EfGh' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production S3 + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production S3' privacy_mode: false sampling_rate: 1 - type: s3 + type: 's3' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' config: properties: accessKeyId: minLength: 1 - type: string + type: 'string' bucketName: minLength: 1 - type: string + type: 'string' endpoint: - description: >- - Only for S3-compatible services like Cloudflare R2 (https://account-id.r2.cloudflarestorage.com) or MinIO. Leave blank for standard AWS S3. - format: uri - type: string + description: 'Only for S3-compatible services like Cloudflare R2 (https://account-id.r2.cloudflarestorage.com) or MinIO. Leave blank for standard AWS S3.' + format: 'uri' + type: 'string' headers: additionalProperties: - type: string - description: Custom HTTP headers to include in requests to this destination. - type: object + type: 'string' + description: 'Custom HTTP headers to include in requests to this destination.' + type: 'object' pathTemplate: default: '{prefix}/{date}' - description: >- - Template for S3 object path. The filename ({traceId}-{timestamp}.json) is automatically appended. Available variables: {prefix}, {date}, {year}, {month}, {day}, {apiKeyName} - type: string + description: 'Template for S3 object path. The filename ({traceId}-{timestamp}.json) is automatically appended. Available variables: {prefix}, {date}, {year}, {month}, {day}, {apiKeyName}' + type: 'string' prefix: - default: openrouter-traces - type: string + default: 'openrouter-traces' + type: 'string' region: - type: string + type: 'string' secretAccessKey: minLength: 1 - type: string + type: 'string' sessionToken: - type: string + type: 'string' required: - - bucketName - - accessKeyId - - secretAccessKey - type: object + - 'bucketName' + - 'accessKeyId' + - 'secretAccessKey' + type: 'object' created_at: - description: ISO timestamp of when the destination was created. + description: 'ISO timestamp of when the destination was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' enabled: - description: Whether this destination is currently enabled. + description: 'Whether this destination is currently enabled.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfig' id: - description: Stable public identifier for this destination. - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'Stable public identifier for this destination.' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' name: - description: Human-readable name for the destination. - example: Production Langfuse - nullable: true - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: + - 'string' + - 'null' privacy_mode: - description: When true, request/response bodies are not forwarded to this destination — only metadata. + description: 'When true, request/response bodies are not forwarded to this destination — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number + format: 'double' + type: 'number' type: enum: - - s3 - type: string + - 's3' + type: 'string' updated_at: - description: ISO timestamp of when the destination was last updated. + description: 'ISO timestamp of when the destination was last updated.' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace this destination belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - name - - enabled - - privacy_mode - - sampling_rate - - api_key_hashes - - filter_rules - - created_at - - updated_at - - type - - config - type: object + description: 'ID of the workspace this destination belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'name' + - 'enabled' + - 'privacy_mode' + - 'sampling_rate' + - 'api_key_hashes' + - 'filter_rules' + - 'created_at' + - 'updated_at' + - 'type' + - 'config' + type: 'object' ObservabilitySentryDestination: example: api_key_hashes: null config: - otlpEndpoint: https://o0.ingest.sentry.io/api/0/otlp + dsn: 'https://abc123@o0.ingest.sentry.io/0' + otlpEndpoint: 'https://o0.ingest.sentry.io/api/0/otlp' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Sentry + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Sentry' privacy_mode: false sampling_rate: 1 - type: sentry + type: 'sentry' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' config: properties: dsn: minLength: 1 - pattern: ^https:\/\/([^:@]+)(?::[^@]*)?@([^/]+)(?:\/[^/]+)*\/(\d+)\/?$ - type: string + pattern: '^https:\/\/([^:@]+)(?::[^@]*)?@([^/]+)(?:\/[^/]+)*\/(\d+)\/?$' + type: 'string' headers: additionalProperties: - type: string - description: Custom HTTP headers to include in requests to this destination. - type: object + type: 'string' + description: 'Custom HTTP headers to include in requests to this destination.' + type: 'object' otlpEndpoint: - type: string + type: 'string' required: - - otlpEndpoint - - dsn - type: object + - 'otlpEndpoint' + - 'dsn' + type: 'object' created_at: - description: ISO timestamp of when the destination was created. + description: 'ISO timestamp of when the destination was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' enabled: - description: Whether this destination is currently enabled. + description: 'Whether this destination is currently enabled.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfig' id: - description: Stable public identifier for this destination. - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'Stable public identifier for this destination.' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' name: - description: Human-readable name for the destination. - example: Production Langfuse - nullable: true - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: + - 'string' + - 'null' privacy_mode: - description: When true, request/response bodies are not forwarded to this destination — only metadata. + description: 'When true, request/response bodies are not forwarded to this destination — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number + format: 'double' + type: 'number' type: enum: - - sentry - type: string + - 'sentry' + type: 'string' updated_at: - description: ISO timestamp of when the destination was last updated. + description: 'ISO timestamp of when the destination was last updated.' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace this destination belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - name - - enabled - - privacy_mode - - sampling_rate - - api_key_hashes - - filter_rules - - created_at - - updated_at - - type - - config - type: object + description: 'ID of the workspace this destination belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'name' + - 'enabled' + - 'privacy_mode' + - 'sampling_rate' + - 'api_key_hashes' + - 'filter_rules' + - 'created_at' + - 'updated_at' + - 'type' + - 'config' + type: 'object' ObservabilitySnowflakeDestination: example: api_key_hashes: null config: - account: xy12345.us-east-1 + account: 'xy12345.us-east-1' token: '****...AbCd' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Snowflake + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Snowflake' privacy_mode: false sampling_rate: 1 - type: snowflake + type: 'snowflake' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' config: properties: account: minLength: 1 - type: string + type: 'string' database: - default: SNOWFLAKE_LEARNING_DB - type: string + default: 'SNOWFLAKE_LEARNING_DB' + type: 'string' headers: additionalProperties: - type: string - description: Custom HTTP headers to include in requests to this destination. - type: object + type: 'string' + description: 'Custom HTTP headers to include in requests to this destination.' + type: 'object' schema: - default: PUBLIC - type: string + default: 'PUBLIC' + type: 'string' table: - default: OPENROUTER_TRACES - type: string + default: 'OPENROUTER_TRACES' + type: 'string' token: minLength: 1 - type: string + type: 'string' warehouse: - default: COMPUTE_WH - type: string + default: 'COMPUTE_WH' + type: 'string' required: - - account - - token - type: object + - 'account' + - 'token' + type: 'object' created_at: - description: ISO timestamp of when the destination was created. + description: 'ISO timestamp of when the destination was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' enabled: - description: Whether this destination is currently enabled. + description: 'Whether this destination is currently enabled.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfig' id: - description: Stable public identifier for this destination. - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'Stable public identifier for this destination.' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' name: - description: Human-readable name for the destination. - example: Production Langfuse - nullable: true - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: + - 'string' + - 'null' privacy_mode: - description: When true, request/response bodies are not forwarded to this destination — only metadata. + description: 'When true, request/response bodies are not forwarded to this destination — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number + format: 'double' + type: 'number' type: enum: - - snowflake - type: string + - 'snowflake' + type: 'string' updated_at: - description: ISO timestamp of when the destination was last updated. + description: 'ISO timestamp of when the destination was last updated.' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace this destination belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - name - - enabled - - privacy_mode - - sampling_rate - - api_key_hashes - - filter_rules - - created_at - - updated_at - - type - - config - type: object + description: 'ID of the workspace this destination belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'name' + - 'enabled' + - 'privacy_mode' + - 'sampling_rate' + - 'api_key_hashes' + - 'filter_rules' + - 'created_at' + - 'updated_at' + - 'type' + - 'config' + type: 'object' ObservabilityWeaveDestination: example: api_key_hashes: null config: apiKey: '****...AbCd' - baseUrl: https://trace.wandb.ai - entity: my-team - project: openrouter-prod + baseUrl: 'https://trace.wandb.ai' + entity: 'my-team' + project: 'openrouter-prod' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Weave + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Weave' privacy_mode: false sampling_rate: 1 - type: weave + type: 'weave' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' config: properties: apiKey: minLength: 1 - type: string + type: 'string' baseUrl: - default: https://trace.wandb.ai - type: string + default: 'https://trace.wandb.ai' + type: 'string' entity: minLength: 1 - type: string + type: 'string' headers: additionalProperties: - type: string - description: Custom HTTP headers to include in requests to this destination. - type: object + type: 'string' + description: 'Custom HTTP headers to include in requests to this destination.' + type: 'object' project: minLength: 1 - type: string + type: 'string' required: - - apiKey - - entity - - project - type: object + - 'apiKey' + - 'entity' + - 'project' + type: 'object' created_at: - description: ISO timestamp of when the destination was created. + description: 'ISO timestamp of when the destination was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' enabled: - description: Whether this destination is currently enabled. + description: 'Whether this destination is currently enabled.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfig' id: - description: Stable public identifier for this destination. - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'Stable public identifier for this destination.' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' name: - description: Human-readable name for the destination. - example: Production Langfuse - nullable: true - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: + - 'string' + - 'null' privacy_mode: - description: When true, request/response bodies are not forwarded to this destination — only metadata. + description: 'When true, request/response bodies are not forwarded to this destination — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number + format: 'double' + type: 'number' type: enum: - - weave - type: string + - 'weave' + type: 'string' updated_at: - description: ISO timestamp of when the destination was last updated. + description: 'ISO timestamp of when the destination was last updated.' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace this destination belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - name - - enabled - - privacy_mode - - sampling_rate - - api_key_hashes - - filter_rules - - created_at - - updated_at - - type - - config - type: object + description: 'ID of the workspace this destination belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'name' + - 'enabled' + - 'privacy_mode' + - 'sampling_rate' + - 'api_key_hashes' + - 'filter_rules' + - 'created_at' + - 'updated_at' + - 'type' + - 'config' + type: 'object' ObservabilityWebhookDestination: example: api_key_hashes: null config: - url: https://example.com/openrouter-events + url: 'https://example.com/openrouter-events' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Webhook + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Webhook' privacy_mode: false sampling_rate: 1 - type: webhook + type: 'webhook' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys. + description: 'Optional allowlist of OpenRouter API key hashes (`api_keys.hash`) whose traffic is forwarded to this destination. `null` means all keys.' example: null items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' config: properties: headers: additionalProperties: - type: string - type: object + type: 'string' + type: 'object' method: - default: POST + default: 'POST' enum: - - POST - - PUT - type: string + - 'POST' + - 'PUT' + type: 'string' x-speakeasy-unknown-values: allow url: - type: string + type: 'string' required: - - url - type: object + - 'url' + type: 'object' created_at: - description: ISO timestamp of when the destination was created. + description: 'ISO timestamp of when the destination was created.' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' enabled: - description: Whether this destination is currently enabled. + description: 'Whether this destination is currently enabled.' example: true - type: boolean + type: 'boolean' filter_rules: $ref: '#/components/schemas/ObservabilityFilterRulesConfig' id: - description: Stable public identifier for this destination. - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'Stable public identifier for this destination.' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' name: - description: Human-readable name for the destination. - example: Production Langfuse - nullable: true - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: + - 'string' + - 'null' privacy_mode: - description: When true, request/response bodies are not forwarded to this destination — only metadata. + description: 'When true, request/response bodies are not forwarded to this destination — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate for events sent to this destination, between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number + format: 'double' + type: 'number' type: enum: - - webhook - type: string + - 'webhook' + type: 'string' updated_at: - description: ISO timestamp of when the destination was last updated. + description: 'ISO timestamp of when the destination was last updated.' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace this destination belongs to. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - name - - enabled - - privacy_mode - - sampling_rate - - api_key_hashes - - filter_rules - - created_at - - updated_at - - type - - config - type: object + description: 'ID of the workspace this destination belongs to.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'name' + - 'enabled' + - 'privacy_mode' + - 'sampling_rate' + - 'api_key_hashes' + - 'filter_rules' + - 'created_at' + - 'updated_at' + - 'type' + - 'config' + type: 'object' OpenAIResponseCustomToolCall: example: - call_id: call-abc123 - id: ctc-abc123 - input: |- - *** Begin Patch - *** End Patch - name: apply_patch - type: custom_tool_call + call_id: 'call-abc123' + id: 'ctc-abc123' + input: "*** Begin Patch\n*** End Patch" + name: 'apply_patch' + type: 'custom_tool_call' properties: call_id: - type: string + type: 'string' id: - type: string + type: 'string' input: - type: string + type: 'string' name: - type: string + type: 'string' namespace: - description: Namespace qualifier for tools registered as part of a namespace tool group (e.g. an MCP server) - type: string + description: 'Namespace qualifier for tools registered as part of a namespace tool group (e.g. an MCP server)' + type: 'string' type: enum: - - custom_tool_call - type: string + - 'custom_tool_call' + type: 'string' required: - - type - - call_id - - name - - input - type: object + - 'type' + - 'call_id' + - 'name' + - 'input' + type: 'object' OpenAIResponseCustomToolCallOutput: example: - call_id: call-abc123 - output: patch applied successfully - type: custom_tool_call_output + call_id: 'call-abc123' + output: 'patch applied successfully' + type: 'custom_tool_call_output' properties: call_id: - type: string + type: 'string' id: - type: string + type: 'string' output: anyOf: - - type: string + - type: 'string' - items: discriminator: mapping: input_file: '#/components/schemas/InputFile' input_image: '#/components/schemas/InputImage' input_text: '#/components/schemas/InputText' - propertyName: type + propertyName: 'type' oneOf: - $ref: '#/components/schemas/InputText' - $ref: '#/components/schemas/InputImage' - $ref: '#/components/schemas/InputFile' - type: array + type: 'array' type: enum: - - custom_tool_call_output - type: string + - 'custom_tool_call_output' + type: 'string' required: - - type - - call_id - - output - type: object + - 'type' + - 'call_id' + - 'output' + type: 'object' OpenAIResponseFunctionToolCall: example: arguments: '{"location":"San Francisco"}' - call_id: call-abc123 - id: fc-abc123 - name: get_weather - status: completed - type: function_call + call_id: 'call-abc123' + id: 'fc-abc123' + name: 'get_weather' + status: 'completed' + type: 'function_call' properties: arguments: - type: string + type: 'string' call_id: - type: string + type: 'string' id: - type: string + type: 'string' name: - type: string + type: 'string' namespace: - description: Namespace qualifier for tools registered as part of a namespace tool group (e.g. an MCP server) - type: string + description: 'Namespace qualifier for tools registered as part of a namespace tool group (e.g. an MCP server)' + type: 'string' status: $ref: '#/components/schemas/ToolCallStatus' type: enum: - - function_call - type: string + - 'function_call' + type: 'string' required: - - type - - call_id - - name - - arguments - type: object + - 'type' + - 'call_id' + - 'name' + - 'arguments' + type: 'object' OpenAIResponseFunctionToolCallOutput: example: - call_id: call-abc123 + call_id: 'call-abc123' output: '{"temperature":72,"conditions":"sunny"}' - type: function_call_output + type: 'function_call_output' properties: call_id: - type: string + type: 'string' id: - nullable: true - type: string + type: + - 'string' + - 'null' output: anyOf: - - type: string + - type: 'string' - items: discriminator: mapping: input_file: '#/components/schemas/InputFile' input_image: '#/components/schemas/InputImage' input_text: '#/components/schemas/InputText' - propertyName: type + propertyName: 'type' oneOf: - $ref: '#/components/schemas/InputText' - $ref: '#/components/schemas/InputImage' - $ref: '#/components/schemas/InputFile' - type: array + type: 'array' status: - allOf: + anyOf: - $ref: '#/components/schemas/ToolCallStatus' - - nullable: true + - type: 'null' type: enum: - - function_call_output - type: string + - 'function_call_output' + type: 'string' required: - - type - - call_id - - output - type: object + - 'type' + - 'call_id' + - 'output' + type: 'object' OpenAIResponseInputMessageItem: example: content: - - text: Hello, how are you? - type: input_text - id: msg-abc123 - role: user - type: message + - text: 'Hello, how are you?' + type: 'input_text' + id: 'msg-abc123' + role: 'user' + type: 'message' properties: content: items: @@ -15722,254 +15935,255 @@ components: input_file: '#/components/schemas/InputFile' input_image: '#/components/schemas/InputImage' input_text: '#/components/schemas/InputText' - propertyName: type + propertyName: 'type' oneOf: - $ref: '#/components/schemas/InputText' - $ref: '#/components/schemas/InputImage' - $ref: '#/components/schemas/InputFile' - $ref: '#/components/schemas/InputAudio' - type: array + type: 'array' id: - type: string + type: 'string' role: anyOf: - enum: - - user - type: string + - 'user' + type: 'string' - enum: - - system - type: string + - 'system' + type: 'string' - enum: - - developer - type: string + - 'developer' + type: 'string' type: enum: - - message - type: string + - 'message' + type: 'string' required: - - id - - role - - content - type: object + - 'id' + - 'role' + - 'content' + type: 'object' OpenAIResponsesAnnotation: anyOf: - $ref: '#/components/schemas/FileCitation' - $ref: '#/components/schemas/URLCitation' - $ref: '#/components/schemas/FilePath' example: - file_id: file-abc123 - filename: research_paper.pdf + file_id: 'file-abc123' + filename: 'research_paper.pdf' index: 0 - type: file_citation + type: 'file_citation' OpenAIResponsesImageGenCallCompleted: example: - item_id: ig_abc123 + item_id: 'ig_abc123' output_index: 0 sequence_number: 4 - type: response.image_generation_call.completed + type: 'response.image_generation_call.completed' properties: item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.image_generation_call.completed - type: string + - 'response.image_generation_call.completed' + type: 'string' required: - - type - - item_id - - output_index - - sequence_number - type: object + - 'type' + - 'item_id' + - 'output_index' + - 'sequence_number' + type: 'object' OpenAIResponsesImageGenCallGenerating: example: - item_id: ig_abc123 + item_id: 'ig_abc123' output_index: 0 sequence_number: 2 - type: response.image_generation_call.generating + type: 'response.image_generation_call.generating' properties: item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.image_generation_call.generating - type: string + - 'response.image_generation_call.generating' + type: 'string' required: - - type - - item_id - - output_index - - sequence_number - type: object + - 'type' + - 'item_id' + - 'output_index' + - 'sequence_number' + type: 'object' OpenAIResponsesImageGenCallInProgress: example: - item_id: ig_abc123 + item_id: 'ig_abc123' output_index: 0 sequence_number: 1 - type: response.image_generation_call.in_progress + type: 'response.image_generation_call.in_progress' properties: item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.image_generation_call.in_progress - type: string + - 'response.image_generation_call.in_progress' + type: 'string' required: - - type - - item_id - - output_index - - sequence_number - type: object + - 'type' + - 'item_id' + - 'output_index' + - 'sequence_number' + type: 'object' OpenAIResponsesImageGenCallPartialImage: example: - item_id: ig_abc123 + item_id: 'ig_abc123' output_index: 0 - partial_image_b64: iVBORw0KGgo... + partial_image_b64: 'iVBORw0KGgo...' partial_image_index: 0 sequence_number: 3 - type: response.image_generation_call.partial_image + type: 'response.image_generation_call.partial_image' properties: item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' partial_image_b64: - type: string + type: 'string' partial_image_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.image_generation_call.partial_image - type: string + - 'response.image_generation_call.partial_image' + type: 'string' required: - - type - - item_id - - output_index - - sequence_number - - partial_image_b64 - - partial_image_index - type: object + - 'type' + - 'item_id' + - 'output_index' + - 'sequence_number' + - 'partial_image_b64' + - 'partial_image_index' + type: 'object' OpenAIResponsesRefusalContent: example: - refusal: I'm sorry, I cannot assist with that request - type: refusal + refusal: 'I''m sorry, I cannot assist with that request' + type: 'refusal' properties: refusal: - type: string + type: 'string' type: enum: - - refusal - type: string + - 'refusal' + type: 'string' required: - - type - - refusal - type: object + - 'type' + - 'refusal' + type: 'object' OpenAIResponsesResponseStatus: enum: - - completed - - incomplete - - in_progress - - failed - - cancelled - - queued - example: completed - type: string + - 'completed' + - 'incomplete' + - 'in_progress' + - 'failed' + - 'cancelled' + - 'queued' + example: 'completed' + type: 'string' x-speakeasy-unknown-values: allow OpenAIResponsesSearchCompleted: example: - item_id: ws_abc123 + item_id: 'ws_abc123' output_index: 0 sequence_number: 5 - type: response.web_search_call.completed + type: 'response.web_search_call.completed' properties: item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.web_search_call.completed - type: string + - 'response.web_search_call.completed' + type: 'string' required: - - type - - item_id - - output_index - - sequence_number - type: object + - 'type' + - 'item_id' + - 'output_index' + - 'sequence_number' + type: 'object' OpenAIResponsesToolChoice: anyOf: - enum: - - auto - type: string + - 'auto' + type: 'string' - enum: - - none - type: string + - 'none' + type: 'string' - enum: - - required - type: string + - 'required' + type: 'string' - properties: name: - type: string + type: 'string' type: enum: - - function - type: string + - 'function' + type: 'string' required: - - type - - name - type: object + - 'type' + - 'name' + type: 'object' - properties: type: anyOf: - enum: - - web_search_preview_2025_03_11 - type: string + - 'web_search_preview_2025_03_11' + type: 'string' - enum: - - web_search_preview - type: string + - 'web_search_preview' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' - $ref: '#/components/schemas/ToolChoiceAllowed' - properties: type: enum: - - apply_patch - type: string + - 'apply_patch' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' - properties: type: enum: - - shell - type: string + - 'shell' + type: 'string' required: - - type - type: object - example: auto + - 'type' + type: 'object' + example: 'auto' OpenAIResponsesTruncation: enum: - - auto - - disabled + - 'auto' + - 'disabled' - null - example: auto - nullable: true - type: string + example: 'auto' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow OpenAIResponsesUsage: example: @@ -15982,163 +16196,170 @@ components: total_tokens: 150 properties: input_tokens: - type: integer + type: 'integer' input_tokens_details: properties: cache_write_tokens: - nullable: true - type: integer + type: + - 'integer' + - 'null' cached_tokens: - type: integer + type: 'integer' required: - - cached_tokens - type: object + - 'cached_tokens' + type: 'object' output_tokens: - type: integer + type: 'integer' output_tokens_details: properties: reasoning_tokens: - type: integer + type: 'integer' required: - - reasoning_tokens - type: object + - 'reasoning_tokens' + type: 'object' total_tokens: - type: integer - required: - - input_tokens - - input_tokens_details - - output_tokens - - output_tokens_details - - total_tokens - type: object + type: 'integer' + required: + - 'input_tokens' + - 'input_tokens_details' + - 'output_tokens' + - 'output_tokens_details' + - 'total_tokens' + type: 'object' OpenAIResponsesWebSearchCallInProgress: example: - item_id: ws_abc123 + item_id: 'ws_abc123' output_index: 0 sequence_number: 1 - type: response.web_search_call.in_progress + type: 'response.web_search_call.in_progress' properties: item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.web_search_call.in_progress - type: string + - 'response.web_search_call.in_progress' + type: 'string' required: - - type - - item_id - - output_index - - sequence_number - type: object + - 'type' + - 'item_id' + - 'output_index' + - 'sequence_number' + type: 'object' OpenAIResponsesWebSearchCallSearching: example: - item_id: ws_abc123 + item_id: 'ws_abc123' output_index: 0 sequence_number: 2 - type: response.web_search_call.searching + type: 'response.web_search_call.searching' properties: item_id: - type: string + type: 'string' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.web_search_call.searching - type: string + - 'response.web_search_call.searching' + type: 'string' required: - - type - - item_id - - output_index - - sequence_number - type: object + - 'type' + - 'item_id' + - 'output_index' + - 'sequence_number' + type: 'object' OpenResponsesCreatedEvent: allOf: - $ref: '#/components/schemas/CreatedEvent' - properties: response: $ref: '#/components/schemas/OpenResponsesResult' - type: object - description: Event emitted when a response is created + type: 'object' + description: 'Event emitted when a response is created' example: response: + completed_at: null created_at: 1704067200 error: null - id: resp-abc123 + frequency_penalty: null + id: 'resp-abc123' incomplete_details: null instructions: null max_output_tokens: null metadata: null - model: gpt-4 - object: response + model: 'gpt-4' + object: 'response' output: [] parallel_tool_calls: true - status: in_progress + presence_penalty: null + status: 'in_progress' temperature: null - tool_choice: auto + tool_choice: 'auto' tools: [] top_p: null sequence_number: 0 - type: response.created + type: 'response.created' OpenResponsesInProgressEvent: allOf: - $ref: '#/components/schemas/InProgressEvent' - properties: response: $ref: '#/components/schemas/OpenResponsesResult' - type: object - description: Event emitted when a response is in progress + type: 'object' + description: 'Event emitted when a response is in progress' example: response: + completed_at: null created_at: 1704067200 error: null - id: resp-abc123 + frequency_penalty: null + id: 'resp-abc123' incomplete_details: null instructions: null max_output_tokens: null metadata: null - model: gpt-4 - object: response + model: 'gpt-4' + object: 'response' output: [] parallel_tool_calls: true - status: in_progress + presence_penalty: null + status: 'in_progress' temperature: null - tool_choice: auto + tool_choice: 'auto' tools: [] top_p: null sequence_number: 1 - type: response.in_progress + type: 'response.in_progress' OpenResponsesLogProbs: - description: Log probability information for a token + description: 'Log probability information for a token' example: logprob: -0.1 - token: world + token: 'world' top_logprobs: - logprob: -0.5 - token: hello + token: 'hello' properties: bytes: items: - type: integer - type: array + type: 'integer' + type: 'array' logprob: - format: double - type: number + format: 'double' + type: 'number' token: - type: string + type: 'string' top_logprobs: items: $ref: '#/components/schemas/OpenResponsesTopLogprobs' - type: array + type: 'array' required: - - logprob - - token - type: object + - 'logprob' + - 'token' + type: 'object' OpenResponsesResult: allOf: - $ref: '#/components/schemas/BaseResponsesResult' @@ -16150,39 +16371,43 @@ components: output: items: $ref: '#/components/schemas/OutputItems' - type: array + type: 'array' service_tier: - nullable: true - type: string + type: + - 'string' + - 'null' text: $ref: '#/components/schemas/TextExtendedConfig' usage: $ref: '#/components/schemas/Usage' - type: object - description: Complete non-streaming response from the Responses API + type: 'object' + description: 'Complete non-streaming response from the Responses API' example: + completed_at: 1704067210 created_at: 1704067200 error: null - id: resp-abc123 + frequency_penalty: null + id: 'resp-abc123' incomplete_details: null instructions: null max_output_tokens: null metadata: null - model: gpt-4 - object: response + model: 'gpt-4' + object: 'response' output: - content: - annotations: [] - text: Hello! How can I help you today? - type: output_text - id: msg-abc123 - role: assistant - status: completed - type: message + text: 'Hello! How can I help you today?' + type: 'output_text' + id: 'msg-abc123' + role: 'assistant' + status: 'completed' + type: 'message' parallel_tool_calls: true - status: completed + presence_penalty: null + status: 'completed' temperature: null - tool_choice: auto + tool_choice: 'auto' tools: [] top_p: null usage: @@ -16194,86 +16419,87 @@ components: reasoning_tokens: 0 total_tokens: 35 OpenResponsesTopLogprobs: - description: Alternative token with its log probability + description: 'Alternative token with its log probability' example: logprob: -0.5 - token: hello + token: 'hello' properties: bytes: items: - type: integer - type: array + type: 'integer' + type: 'array' logprob: - format: double - type: number + format: 'double' + type: 'number' token: - type: string - type: object + type: 'string' + type: 'object' OpenRouterMetadata: example: attempt: 1 endpoints: available: - - model: openai/gpt-4o - provider: OpenAI + - model: 'openai/gpt-4o' + provider: 'OpenAI' selected: true total: 1 is_byok: false - region: iad - requested: openai/gpt-4o - strategy: direct - summary: available=1, selected=OpenAI + region: 'iad' + requested: 'openai/gpt-4o' + strategy: 'direct' + summary: 'available=1, selected=OpenAI' properties: attempt: - type: integer + type: 'integer' attempts: items: $ref: '#/components/schemas/RouterAttempt' - type: array + type: 'array' endpoints: $ref: '#/components/schemas/EndpointsMetadata' is_byok: - type: boolean + type: 'boolean' params: $ref: '#/components/schemas/RouterParams' pipeline: items: $ref: '#/components/schemas/PipelineStage' - type: array + type: 'array' region: - nullable: true - type: string + type: + - 'string' + - 'null' requested: - type: string + type: 'string' strategy: $ref: '#/components/schemas/RoutingStrategy' summary: - type: string - required: - - requested - - strategy - - region - - summary - - attempt - - is_byok - - endpoints - type: object + type: 'string' + required: + - 'requested' + - 'strategy' + - 'region' + - 'summary' + - 'attempt' + - 'is_byok' + - 'endpoints' + type: 'object' OpenRouterWebSearchServerTool: description: 'OpenRouter built-in server tool: searches the web for current information' example: parameters: max_results: 5 - type: openrouter:web_search + type: 'openrouter:web_search' properties: parameters: $ref: '#/components/schemas/WebSearchConfig' type: enum: - - openrouter:web_search - type: string + - 'openrouter:web_search' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' ORAnthropicContentBlock: discriminator: mapping: @@ -16291,11 +16517,11 @@ components: tool_use: '#/components/schemas/AnthropicToolUseBlock' web_fetch_tool_result: '#/components/schemas/AnthropicWebFetchToolResult' web_search_tool_result: '#/components/schemas/AnthropicWebSearchToolResult' - propertyName: type + propertyName: 'type' example: citations: null - text: Hello, world! - type: text + text: 'Hello, world!' + type: 'text' oneOf: - $ref: '#/components/schemas/AnthropicTextBlock' - $ref: '#/components/schemas/AnthropicToolUseBlock' @@ -16317,573 +16543,557 @@ components: code_execution_20250825: '#/components/schemas/AnthropicCodeExecution20250825Caller' code_execution_20260120: '#/components/schemas/AnthropicCodeExecution20260120Caller' direct: '#/components/schemas/AnthropicDirectCaller' - propertyName: type - example: null + propertyName: 'type' + example: + type: 'direct' oneOf: - $ref: '#/components/schemas/AnthropicDirectCaller' - $ref: '#/components/schemas/AnthropicCodeExecution20250825Caller' - $ref: '#/components/schemas/AnthropicCodeExecution20260120Caller' - - nullable: true + - type: 'null' ORAnthropicServerToolUseBlock: example: - caller: null - id: srvtoolu_01abc + caller: + type: 'direct' + id: 'srvtoolu_01abc' input: {} - name: advisor - type: server_tool_use + name: 'advisor' + type: 'server_tool_use' properties: caller: $ref: '#/components/schemas/ORAnthropicNullableCaller' id: - type: string - input: - nullable: true + type: 'string' + input: {} name: - type: string + type: 'string' type: enum: - - server_tool_use - type: string + - 'server_tool_use' + type: 'string' required: - - type - - id - - name - type: object + - 'type' + - 'id' + - 'name' + type: 'object' ORAnthropicStopReason: enum: - - end_turn - - max_tokens - - stop_sequence - - tool_use - - pause_turn - - refusal - - compaction + - 'end_turn' + - 'max_tokens' + - 'stop_sequence' + - 'tool_use' + - 'pause_turn' + - 'refusal' + - 'compaction' - null - example: end_turn - nullable: true - type: string + example: 'end_turn' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow OutputAdvisorServerToolItem: - description: An openrouter:advisor server tool output item + description: 'An openrouter:advisor server tool output item' example: - id: st_tmp_abc123 - status: completed - type: openrouter:advisor + id: 'st_tmp_abc123' + status: 'completed' + type: 'openrouter:advisor' properties: advice: - description: The advisor model's response (the advice text returned to the executor). - type: string + description: 'The advisor model''s response (the advice text returned to the executor).' + type: 'string' error: - description: Error message when the advisor call did not produce advice. - type: string + description: 'Error message when the advisor call did not produce advice.' + type: 'string' id: - type: string + type: 'string' instance_name: - description: >- - Provider-safe function name of the specific advisor instance that produced this item (e.g. `openrouter_advisor__1`). Present only when more than one advisor tool is configured; omitted for the default single advisor. Echo this field back unchanged so the advisor's cross-request memory stays namespaced to the correct instance. This identity is positional: it is derived from the index of the advisor entry in the request `tools` array, so clients must keep the order of advisor tool entries stable across requests in a conversation. Reordering or inserting advisor entries shifts these names and causes each advisor's cross-request memory to be attributed to the wrong instance. - example: openrouter_advisor__1 - type: string + description: 'Provider-safe function name of the specific advisor instance that produced this item (e.g. `openrouter_advisor__1`). Present only when more than one advisor tool is configured; omitted for the default single advisor. Echo this field back unchanged so the advisor''s cross-request memory stays namespaced to the correct instance. This identity is positional: it is derived from the index of the advisor entry in the request `tools` array, so clients must keep the order of advisor tool entries stable across requests in a conversation. Reordering or inserting advisor entries shifts these names and causes each advisor''s cross-request memory to be attributed to the wrong instance.' + example: 'openrouter_advisor__1' + type: 'string' model: - description: Slug of the advisor model that was consulted. - type: string + description: 'Slug of the advisor model that was consulted.' + type: 'string' prompt: - description: The prompt the executor sent to the advisor. - type: string + description: 'The prompt the executor sent to the advisor.' + type: 'string' status: $ref: '#/components/schemas/ToolCallStatus' type: enum: - - openrouter:advisor - type: string + - 'openrouter:advisor' + type: 'string' required: - - status - - type - type: object + - 'status' + - 'type' + type: 'object' OutputApplyPatchCallItem: - description: >- - A native `apply_patch_call` output item matching OpenAI's Responses API shape. Emitted when the client requested the `apply_patch` shorthand. + description: 'A native `apply_patch_call` output item matching OpenAI''s Responses API shape. Emitted when the client requested the `apply_patch` shorthand.' example: - call_id: call_abc123 - id: apc_abc123 + call_id: 'call_abc123' + id: 'apc_abc123' operation: - diff: |- - @@ function main() { - + console.log("hi"); - } - path: /src/main.ts - type: update_file - status: completed - type: apply_patch_call + diff: "@@ function main() {\n+ console.log(\"hi\");\n }" + path: '/src/main.ts' + type: 'update_file' + status: 'completed' + type: 'apply_patch_call' properties: call_id: - type: string + type: 'string' id: - type: string + type: 'string' operation: $ref: '#/components/schemas/ApplyPatchCallOperation' status: $ref: '#/components/schemas/ApplyPatchCallStatus' type: enum: - - apply_patch_call - type: string + - 'apply_patch_call' + type: 'string' required: - - type - - id - - call_id - - status - - operation - type: object + - 'type' + - 'id' + - 'call_id' + - 'status' + - 'operation' + type: 'object' OutputApplyPatchServerToolItem: - description: >- - An openrouter:apply_patch server tool output item. The turn halts when validation succeeds so the client can apply the patch and echo an `apply_patch_call_output` on the next turn. + description: 'An openrouter:apply_patch server tool output item. The turn halts when validation succeeds so the client can apply the patch and echo an `apply_patch_call_output` on the next turn.' example: - call_id: call_abc123 - id: apc_abc123 + call_id: 'call_abc123' + id: 'apc_abc123' operation: - diff: |- - @@ function main() { - + console.log("hi"); - } - path: /src/main.ts - type: update_file - status: completed - type: openrouter:apply_patch + diff: "@@ function main() {\n+ console.log(\"hi\");\n }" + path: '/src/main.ts' + type: 'update_file' + status: 'completed' + type: 'openrouter:apply_patch' properties: call_id: - type: string + type: 'string' id: - type: string + type: 'string' operation: $ref: '#/components/schemas/ApplyPatchCallOperation' status: $ref: '#/components/schemas/ToolCallStatus' type: enum: - - openrouter:apply_patch - type: string + - 'openrouter:apply_patch' + type: 'string' required: - - status - - type - type: object + - 'status' + - 'type' + type: 'object' OutputBashServerToolItem: - description: An openrouter:bash server tool output item + description: 'An openrouter:bash server tool output item' example: - command: ls -la + command: 'ls -la' exitCode: 0 - id: bash_tmp_abc123 - status: completed - stdout: | - total 0 - type: openrouter:bash + id: 'bash_tmp_abc123' + status: 'completed' + stdout: "total 0\n" + type: 'openrouter:bash' properties: command: - type: string + type: 'string' exitCode: - type: integer + type: 'integer' id: - type: string + type: 'string' status: $ref: '#/components/schemas/ToolCallStatus' stderr: - type: string + type: 'string' stdout: - type: string + type: 'string' type: enum: - - openrouter:bash - type: string + - 'openrouter:bash' + type: 'string' required: - - status - - type - type: object + - 'status' + - 'type' + type: 'object' OutputBrowserUseServerToolItem: - description: An openrouter:browser_use server tool output item + description: 'An openrouter:browser_use server tool output item' example: - action: screenshot - id: bu_tmp_abc123 - status: completed - type: openrouter:browser_use + action: 'screenshot' + id: 'bu_tmp_abc123' + status: 'completed' + type: 'openrouter:browser_use' properties: action: - type: string + type: 'string' id: - type: string + type: 'string' screenshotB64: - type: string + type: 'string' status: $ref: '#/components/schemas/ToolCallStatus' type: enum: - - openrouter:browser_use - type: string + - 'openrouter:browser_use' + type: 'string' required: - - status - - type - type: object + - 'status' + - 'type' + type: 'object' OutputCodeInterpreterCallItem: allOf: - $ref: '#/components/schemas/CodeInterpreterCallItem' - properties: {} - type: object - description: A code interpreter execution call with outputs + type: 'object' + description: 'A code interpreter execution call with outputs' example: - code: print("hello") - container_id: ctr-xyz789 - id: ci-abc123 + code: 'print("hello")' + container_id: 'ctr-xyz789' + id: 'ci-abc123' outputs: - - logs: | - hello - type: logs - status: completed - type: code_interpreter_call + - logs: "hello\n" + type: 'logs' + status: 'completed' + type: 'code_interpreter_call' OutputCodeInterpreterServerToolItem: - description: An openrouter:code_interpreter server tool output item + description: 'An openrouter:code_interpreter server tool output item' example: - code: print("hello") - id: ci_tmp_abc123 - language: python - status: completed - stdout: | - hello - type: openrouter:code_interpreter + code: 'print("hello")' + id: 'ci_tmp_abc123' + language: 'python' + status: 'completed' + stdout: "hello\n" + type: 'openrouter:code_interpreter' properties: code: - type: string + type: 'string' exitCode: - type: integer + type: 'integer' id: - type: string + type: 'string' language: - type: string + type: 'string' status: $ref: '#/components/schemas/ToolCallStatus' stderr: - type: string + type: 'string' stdout: - type: string + type: 'string' type: enum: - - openrouter:code_interpreter - type: string + - 'openrouter:code_interpreter' + type: 'string' required: - - status - - type - type: object + - 'status' + - 'type' + type: 'object' OutputComputerCallItem: example: action: - type: screenshot - call_id: call-abc123 - id: cu-abc123 + type: 'screenshot' + call_id: 'call-abc123' + id: 'cu-abc123' pending_safety_checks: [] - status: completed - type: computer_call + status: 'completed' + type: 'computer_call' properties: - action: - nullable: true + action: {} call_id: - type: string + type: 'string' id: - type: string + type: 'string' pending_safety_checks: items: properties: code: - type: string + type: 'string' id: - type: string + type: 'string' message: - type: string + type: 'string' required: - - id - - code - - message - type: object - type: array + - 'id' + - 'code' + - 'message' + type: 'object' + type: 'array' status: enum: - - completed - - incomplete - - in_progress - type: string + - 'completed' + - 'incomplete' + - 'in_progress' + type: 'string' x-speakeasy-unknown-values: allow type: enum: - - computer_call - type: string + - 'computer_call' + type: 'string' required: - - type - - call_id - - status - - pending_safety_checks - type: object + - 'type' + - 'call_id' + - 'status' + - 'pending_safety_checks' + type: 'object' OutputCustomToolCallItem: - description: >- - A call to a custom (freeform-grammar) tool created by the model — distinct from `function_call`. Used for tools like Codex CLI's `apply_patch` whose payload is opaque text rather than JSON arguments. + description: 'A call to a custom (freeform-grammar) tool created by the model — distinct from `function_call`. Used for tools like Codex CLI''s `apply_patch` whose payload is opaque text rather than JSON arguments.' example: - call_id: call-abc123 - id: ctc-abc123 - input: |- - *** Begin Patch - *** End Patch - name: apply_patch - type: custom_tool_call + call_id: 'call-abc123' + id: 'ctc-abc123' + input: "*** Begin Patch\n*** End Patch" + name: 'apply_patch' + type: 'custom_tool_call' properties: call_id: - type: string + type: 'string' id: - type: string + type: 'string' input: - type: string + type: 'string' name: - type: string + type: 'string' namespace: - description: Namespace qualifier for tools registered as part of a namespace tool group (e.g. an MCP server) - type: string + description: 'Namespace qualifier for tools registered as part of a namespace tool group (e.g. an MCP server)' + type: 'string' type: enum: - - custom_tool_call - type: string + - 'custom_tool_call' + type: 'string' required: - - type - - name - - input - - call_id - type: object + - 'type' + - 'name' + - 'input' + - 'call_id' + type: 'object' OutputDatetimeItem: - description: An openrouter:datetime server tool output item + description: 'An openrouter:datetime server tool output item' example: datetime: '2026-03-12T14:30:00.000Z' - id: dt_tmp_abc123 - status: completed - timezone: UTC - type: openrouter:datetime + id: 'dt_tmp_abc123' + status: 'completed' + timezone: 'UTC' + type: 'openrouter:datetime' properties: datetime: - description: ISO 8601 datetime string - type: string + description: 'ISO 8601 datetime string' + type: 'string' id: - type: string + type: 'string' status: $ref: '#/components/schemas/ToolCallStatus' timezone: - description: IANA timezone name - type: string + description: 'IANA timezone name' + type: 'string' type: enum: - - openrouter:datetime - type: string + - 'openrouter:datetime' + type: 'string' required: - - status - - type - - datetime - - timezone - type: object + - 'status' + - 'type' + - 'datetime' + - 'timezone' + type: 'object' OutputFileSearchCallItem: allOf: - $ref: '#/components/schemas/OutputItemFileSearchCall' - properties: {} - type: object + type: 'object' example: - id: fs-abc123 + id: 'fs-abc123' queries: - - search term + - 'search term' results: [] - status: completed - type: file_search_call + status: 'completed' + type: 'file_search_call' OutputFileSearchServerToolItem: - description: An openrouter:file_search server tool output item + description: 'An openrouter:file_search server tool output item' example: - id: fs_tmp_abc123 + id: 'fs_tmp_abc123' queries: - - search term - status: completed - type: openrouter:file_search + - 'search term' + status: 'completed' + type: 'openrouter:file_search' properties: id: - type: string + type: 'string' queries: items: - type: string - type: array + type: 'string' + type: 'array' status: $ref: '#/components/schemas/ToolCallStatus' type: enum: - - openrouter:file_search - type: string + - 'openrouter:file_search' + type: 'string' required: - - status - - type - type: object + - 'status' + - 'type' + type: 'object' OutputFilesServerToolItem: - description: An openrouter:files server tool output item + description: 'An openrouter:files server tool output item' example: - filename: notes.txt - id: fl_tmp_abc123 - operation: read + filename: 'notes.txt' + id: 'fl_tmp_abc123' + operation: 'read' result: '{"id":"file_abc","filename":"notes.txt","content":"hello"}' - status: completed - type: openrouter:files + status: 'completed' + type: 'openrouter:files' properties: error: - description: Error message when the file operation failed. - type: string + description: 'Error message when the file operation failed.' + type: 'string' file_id: - description: The target file id supplied in the tool-call arguments. - type: string + description: 'The target file id supplied in the tool-call arguments.' + type: 'string' filename: - description: The target filename supplied in the tool-call arguments. - type: string + description: 'The target filename supplied in the tool-call arguments.' + type: 'string' id: - type: string + type: 'string' operation: - description: The file operation performed (list, read, write, or edit). - type: string + description: 'The file operation performed (list, read, write, or edit).' + type: 'string' result: - description: JSON-serialized result of the file operation. - type: string + description: 'JSON-serialized result of the file operation.' + type: 'string' status: $ref: '#/components/schemas/ToolCallStatus' type: enum: - - openrouter:files - type: string + - 'openrouter:files' + type: 'string' required: - - status - - type - type: object + - 'status' + - 'type' + type: 'object' OutputFunctionCallItem: allOf: - $ref: '#/components/schemas/OutputItemFunctionCall' - properties: {} - type: object + type: 'object' example: arguments: '{"location":"San Francisco"}' - call_id: call-abc123 - id: fc-abc123 - name: get_weather - status: completed - type: function_call + call_id: 'call-abc123' + id: 'fc-abc123' + name: 'get_weather' + status: 'completed' + type: 'function_call' OutputFusionServerToolItem: - description: An openrouter:fusion server tool output item + description: 'An openrouter:fusion server tool output item' example: - id: st_tmp_abc123 - status: completed - type: openrouter:fusion + id: 'st_tmp_abc123' + status: 'completed' + type: 'openrouter:fusion' properties: analysis: $ref: '#/components/schemas/FusionAnalysisResult' error: - description: Error message when the fusion run did not produce an analysis result. - type: string + description: 'Error message when the fusion run did not produce an analysis result.' + type: 'string' failed_models: - description: >- - Models that were requested as part of the analysis panel but did not produce a response. Present when at least one requested analysis model failed. The fusion result is still usable but was produced from a degraded panel. + description: 'Models that were requested as part of the analysis panel but did not produce a response. Present when at least one requested analysis model failed. The fusion result is still usable but was produced from a degraded panel.' items: properties: error: - description: Error message describing why the model failed. - type: string + description: 'Error message describing why the model failed.' + type: 'string' model: - description: Slug of the analysis model that failed. - type: string + description: 'Slug of the analysis model that failed.' + type: 'string' status_code: - description: HTTP status code from the upstream response, when available (e.g. 402, 429). - type: integer + description: 'HTTP status code from the upstream response, when available (e.g. 402, 429).' + type: 'integer' required: - - model - - error - type: object - type: array + - 'model' + - 'error' + type: 'object' + type: 'array' failure_reason: - description: >- - Typed failure reason when the fusion run failed. Possible values include: all_panels_failed, insufficient_credits, rate_limited, judge_not_valid_json, judge_schema_mismatch, judge_upstream_error, judge_empty_completion. - type: string + description: 'Typed failure reason when the fusion run failed. Possible values include: all_panels_failed, insufficient_credits, rate_limited, judge_not_valid_json, judge_schema_mismatch, judge_upstream_error, judge_empty_completion.' + type: 'string' id: - type: string + type: 'string' responses: - description: Analysis models that produced a response in this fusion run, with each model's full panel content. + description: 'Analysis models that produced a response in this fusion run, with each model''s full panel content.' items: properties: content: - type: string + type: 'string' model: - type: string + type: 'string' required: - - model - type: object - type: array + - 'model' + type: 'object' + type: 'array' sources: - description: >- - Web pages the analysis panels and judge retrieved via web search during this fusion run, deduplicated by URL across the whole run. Present when at least one model cited a source. + description: 'Web pages the analysis panels and judge retrieved via web search during this fusion run, deduplicated by URL across the whole run. Present when at least one model cited a source.' items: $ref: '#/components/schemas/FusionSource' - type: array + type: 'array' status: $ref: '#/components/schemas/ToolCallStatus' type: enum: - - openrouter:fusion - type: string + - 'openrouter:fusion' + type: 'string' required: - - status - - type - type: object + - 'status' + - 'type' + type: 'object' OutputImageGenerationCallItem: allOf: - $ref: '#/components/schemas/OutputItemImageGenerationCall' - properties: {} - type: object + type: 'object' example: - id: img-abc123 + id: 'img-abc123' result: null - status: completed - type: image_generation_call + status: 'completed' + type: 'image_generation_call' OutputImageGenerationServerToolItem: - description: An openrouter:image_generation server tool output item + description: 'An openrouter:image_generation server tool output item' example: - id: ig_tmp_abc123 - imageUrl: https://example.com/image.png - result: https://example.com/image.png - status: completed - type: openrouter:image_generation + id: 'ig_tmp_abc123' + imageUrl: 'https://example.com/image.png' + result: 'https://example.com/image.png' + status: 'completed' + type: 'openrouter:image_generation' properties: id: - type: string + type: 'string' imageB64: - type: string + type: 'string' imageUrl: - type: string + type: 'string' result: - description: The generated image as a base64-encoded string or URL, matching OpenAI image_generation_call format - nullable: true - type: string + description: 'The generated image as a base64-encoded string or URL, matching OpenAI image_generation_call format' + type: + - 'string' + - 'null' revisedPrompt: - type: string + type: 'string' status: $ref: '#/components/schemas/ToolCallStatus' type: enum: - - openrouter:image_generation - type: string + - 'openrouter:image_generation' + type: 'string' required: - - status - - type - type: object + - 'status' + - 'type' + type: 'object' OutputItemAddedEvent: - description: Event emitted when a new output item is added to the response + description: 'Event emitted when a new output item is added to the response' example: item: content: [] - id: item-1 - role: assistant - status: in_progress - type: message + id: 'item-1' + role: 'assistant' + status: 'in_progress' + type: 'message' output_index: 0 sequence_number: 2 - type: response.output_item.added + type: 'response.output_item.added' properties: item: discriminator: @@ -16896,7 +17106,7 @@ components: message: '#/components/schemas/OutputMessage' reasoning: '#/components/schemas/OutputItemReasoning' web_search_call: '#/components/schemas/OutputItemWebSearchCall' - propertyName: type + propertyName: 'type' oneOf: - $ref: '#/components/schemas/OutputMessage' - $ref: '#/components/schemas/OutputItemReasoning' @@ -16907,113 +17117,108 @@ components: - $ref: '#/components/schemas/OutputItemImageGenerationCall' - $ref: '#/components/schemas/OutputItemApplyPatchCall' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.output_item.added - type: string + - 'response.output_item.added' + type: 'string' required: - - type - - output_index - - item - - sequence_number - type: object + - 'type' + - 'output_index' + - 'item' + - 'sequence_number' + type: 'object' OutputItemApplyPatchCall: example: - call_id: call_abc123 - id: apc_abc123 + call_id: 'call_abc123' + id: 'apc_abc123' operation: - diff: |- - @@ function main() { - + console.log("hi"); - } - path: /src/main.ts - type: update_file - status: completed - type: apply_patch_call + diff: "@@ function main() {\n+ console.log(\"hi\");\n }" + path: '/src/main.ts' + type: 'update_file' + status: 'completed' + type: 'apply_patch_call' properties: call_id: - type: string + type: 'string' created_by: - type: string + type: 'string' id: - type: string + type: 'string' operation: discriminator: mapping: create_file: '#/components/schemas/ApplyPatchCreateFileOperation' delete_file: '#/components/schemas/ApplyPatchDeleteFileOperation' update_file: '#/components/schemas/ApplyPatchUpdateFileOperation' - propertyName: type + propertyName: 'type' oneOf: - $ref: '#/components/schemas/ApplyPatchCreateFileOperation' - $ref: '#/components/schemas/ApplyPatchUpdateFileOperation' - $ref: '#/components/schemas/ApplyPatchDeleteFileOperation' status: enum: - - in_progress - - completed - type: string + - 'in_progress' + - 'completed' + type: 'string' x-speakeasy-unknown-values: allow type: enum: - - apply_patch_call - type: string + - 'apply_patch_call' + type: 'string' required: - - type - - id - - call_id - - operation - - status - type: object + - 'type' + - 'id' + - 'call_id' + - 'operation' + - 'status' + type: 'object' OutputItemCustomToolCall: example: - call_id: call-abc123 - id: ctc-abc123 - input: |- - *** Begin Patch - *** End Patch - name: apply_patch - type: custom_tool_call + call_id: 'call-abc123' + id: 'ctc-abc123' + input: "*** Begin Patch\n*** End Patch" + name: 'apply_patch' + type: 'custom_tool_call' properties: call_id: - type: string + type: 'string' id: - type: string + type: 'string' input: - type: string + type: 'string' name: - type: string + type: 'string' namespace: - description: Namespace qualifier for tools registered as part of a namespace tool group (e.g. an MCP server) - type: string + description: 'Namespace qualifier for tools registered as part of a namespace tool group (e.g. an MCP server)' + type: 'string' type: enum: - - custom_tool_call - type: string + - 'custom_tool_call' + type: 'string' required: - - type - - name - - input - - call_id - type: object + - 'type' + - 'name' + - 'input' + - 'call_id' + type: 'object' OutputItemDoneEvent: - description: Event emitted when an output item is complete + description: 'Event emitted when an output item is complete' example: item: content: - annotations: [] - text: Hello! How can I help you? - type: output_text - id: item-1 - role: assistant - status: completed - type: message + text: 'Hello! How can I help you?' + type: 'output_text' + id: 'item-1' + role: 'assistant' + status: 'completed' + type: 'message' output_index: 0 sequence_number: 8 - type: response.output_item.done + type: 'response.output_item.done' properties: item: discriminator: @@ -17026,7 +17231,7 @@ components: message: '#/components/schemas/OutputMessage' reasoning: '#/components/schemas/OutputItemReasoning' web_search_call: '#/components/schemas/OutputItemWebSearchCall' - propertyName: type + propertyName: 'type' oneOf: - $ref: '#/components/schemas/OutputMessage' - $ref: '#/components/schemas/OutputItemReasoning' @@ -17037,153 +17242,155 @@ components: - $ref: '#/components/schemas/OutputItemImageGenerationCall' - $ref: '#/components/schemas/OutputItemApplyPatchCall' output_index: - type: integer + type: 'integer' sequence_number: - type: integer + type: 'integer' type: enum: - - response.output_item.done - type: string + - 'response.output_item.done' + type: 'string' required: - - type - - output_index - - item - - sequence_number - type: object + - 'type' + - 'output_index' + - 'item' + - 'sequence_number' + type: 'object' OutputItemFileSearchCall: example: - id: filesearch-abc123 + id: 'filesearch-abc123' queries: - - machine learning algorithms - - neural networks - status: completed - type: file_search_call + - 'machine learning algorithms' + - 'neural networks' + status: 'completed' + type: 'file_search_call' properties: id: - type: string + type: 'string' queries: items: - type: string - type: array + type: 'string' + type: 'array' status: $ref: '#/components/schemas/WebSearchStatus' type: enum: - - file_search_call - type: string + - 'file_search_call' + type: 'string' required: - - type - - id - - queries - - status - type: object + - 'type' + - 'id' + - 'queries' + - 'status' + type: 'object' OutputItemFunctionCall: example: arguments: '{"location":"San Francisco","unit":"celsius"}' - call_id: call-abc123 - id: call-abc123 - name: get_weather - type: function_call + call_id: 'call-abc123' + id: 'call-abc123' + name: 'get_weather' + type: 'function_call' properties: arguments: - type: string + type: 'string' call_id: - type: string + type: 'string' id: - type: string + type: 'string' name: - type: string + type: 'string' namespace: - description: Namespace qualifier for tools registered as part of a namespace tool group (e.g. an MCP server) - type: string + description: 'Namespace qualifier for tools registered as part of a namespace tool group (e.g. an MCP server)' + type: 'string' status: anyOf: - enum: - - completed - type: string + - 'completed' + type: 'string' - enum: - - incomplete - type: string + - 'incomplete' + type: 'string' - enum: - - in_progress - type: string + - 'in_progress' + type: 'string' type: enum: - - function_call - type: string + - 'function_call' + type: 'string' required: - - type - - name - - arguments - - call_id - type: object + - 'type' + - 'name' + - 'arguments' + - 'call_id' + type: 'object' OutputItemImageGenerationCall: example: - id: imagegen-abc123 - result: iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg== - status: completed - type: image_generation_call + id: 'imagegen-abc123' + result: 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==' + status: 'completed' + type: 'image_generation_call' properties: id: - type: string + type: 'string' result: default: null - nullable: true - type: string + type: + - 'string' + - 'null' status: $ref: '#/components/schemas/ImageGenerationStatus' type: enum: - - image_generation_call - type: string + - 'image_generation_call' + type: 'string' required: - - type - - id - - status - type: object + - 'type' + - 'id' + - 'status' + type: 'object' OutputItemReasoning: example: - id: reasoning-abc123 + id: 'reasoning-abc123' summary: - - text: Analyzed the problem using first principles - type: summary_text - type: reasoning + - text: 'Analyzed the problem using first principles' + type: 'summary_text' + type: 'reasoning' properties: content: items: $ref: '#/components/schemas/ReasoningTextContent' - type: array + type: 'array' encrypted_content: - nullable: true - type: string + type: + - 'string' + - 'null' id: - type: string + type: 'string' status: anyOf: - enum: - - completed - type: string + - 'completed' + type: 'string' - enum: - - incomplete - type: string + - 'incomplete' + type: 'string' - enum: - - in_progress - type: string + - 'in_progress' + type: 'string' summary: items: $ref: '#/components/schemas/ReasoningSummaryText' - type: array + type: 'array' type: enum: - - reasoning - type: string + - 'reasoning' + type: 'string' required: - - type - - id - - summary - type: object + - 'type' + - 'id' + - 'summary' + type: 'object' OutputItems: - description: An output item from the response + description: 'An output item from the response' discriminator: mapping: apply_patch_call: '#/components/schemas/OutputApplyPatchCallItem' @@ -17216,15 +17423,15 @@ components: shell_call: '#/components/schemas/OutputShellCallItem' shell_call_output: '#/components/schemas/OutputShellCallOutputItem' web_search_call: '#/components/schemas/OutputWebSearchCallItem' - propertyName: type + propertyName: 'type' example: content: - - text: Hello! How can I help you today? - type: output_text - id: msg-abc123 - role: assistant - status: completed - type: message + - text: 'Hello! How can I help you today?' + type: 'output_text' + id: 'msg-abc123' + role: 'assistant' + status: 'completed' + type: 'message' oneOf: - $ref: '#/components/schemas/OutputMessageItem' - $ref: '#/components/schemas/OutputReasoningItem' @@ -17259,216 +17466,215 @@ components: OutputItemWebSearchCall: example: action: - query: OpenAI API - type: search - id: search-abc123 - status: completed - type: web_search_call + query: 'OpenAI API' + type: 'search' + id: 'search-abc123' + status: 'completed' + type: 'web_search_call' properties: action: oneOf: - properties: queries: items: - type: string - type: array + type: 'string' + type: 'array' query: - type: string + type: 'string' sources: items: $ref: '#/components/schemas/WebSearchSource' - type: array + type: 'array' type: enum: - - search - type: string + - 'search' + type: 'string' required: - - type - - query - type: object + - 'type' + - 'query' + type: 'object' - properties: type: enum: - - open_page - type: string + - 'open_page' + type: 'string' url: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - type - type: object + - 'type' + type: 'object' - properties: pattern: - type: string + type: 'string' type: enum: - - find_in_page - type: string + - 'find_in_page' + type: 'string' url: - type: string + type: 'string' required: - - type - - pattern - - url - type: object + - 'type' + - 'pattern' + - 'url' + type: 'object' id: - type: string + type: 'string' status: $ref: '#/components/schemas/WebSearchStatus' type: enum: - - web_search_call - type: string + - 'web_search_call' + type: 'string' required: - - type - - id - - status - type: object + - 'type' + - 'id' + - 'status' + type: 'object' OutputMcpServerToolItem: - description: An openrouter:mcp server tool output item + description: 'An openrouter:mcp server tool output item' example: - id: mcp_tmp_abc123 - serverLabel: my-server - status: completed - toolName: get_data - type: openrouter:mcp + id: 'mcp_tmp_abc123' + serverLabel: 'my-server' + status: 'completed' + toolName: 'get_data' + type: 'openrouter:mcp' properties: id: - type: string + type: 'string' serverLabel: - type: string + type: 'string' status: $ref: '#/components/schemas/ToolCallStatus' toolName: - type: string + type: 'string' type: enum: - - openrouter:mcp - type: string + - 'openrouter:mcp' + type: 'string' required: - - status - - type - type: object + - 'status' + - 'type' + type: 'object' OutputMemoryServerToolItem: - description: An openrouter:memory server tool output item + description: 'An openrouter:memory server tool output item' example: - action: read - id: mem_tmp_abc123 - key: user_preference - status: completed - type: openrouter:memory + action: 'read' + id: 'mem_tmp_abc123' + key: 'user_preference' + status: 'completed' + type: 'openrouter:memory' properties: action: enum: - - read - - write - - delete - type: string + - 'read' + - 'write' + - 'delete' + type: 'string' x-speakeasy-unknown-values: allow id: - type: string + type: 'string' key: - type: string + type: 'string' status: $ref: '#/components/schemas/ToolCallStatus' type: enum: - - openrouter:memory - type: string - value: - nullable: true + - 'openrouter:memory' + type: 'string' + value: {} required: - - status - - type - type: object + - 'status' + - 'type' + type: 'object' OutputMessage: example: content: - - text: Hello! How can I help you today? - type: output_text - id: msg-abc123 - role: assistant - status: completed - type: message + - text: 'Hello! How can I help you today?' + type: 'output_text' + id: 'msg-abc123' + role: 'assistant' + status: 'completed' + type: 'message' properties: content: items: anyOf: - $ref: '#/components/schemas/ResponseOutputText' - $ref: '#/components/schemas/OpenAIResponsesRefusalContent' - type: array + type: 'array' id: - type: string + type: 'string' phase: anyOf: - enum: - - commentary - type: string + - 'commentary' + type: 'string' - enum: - - final_answer - type: string - - nullable: true - description: >- - The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer` for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages. + - 'final_answer' + type: 'string' + - type: 'null' + description: 'The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer` for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages.' role: enum: - - assistant - type: string + - 'assistant' + type: 'string' status: anyOf: - enum: - - completed - type: string + - 'completed' + type: 'string' - enum: - - incomplete - type: string + - 'incomplete' + type: 'string' - enum: - - in_progress - type: string + - 'in_progress' + type: 'string' type: enum: - - message - type: string + - 'message' + type: 'string' required: - - id - - role - - type - - content - type: object + - 'id' + - 'role' + - 'type' + - 'content' + type: 'object' OutputMessageItem: allOf: - $ref: '#/components/schemas/OutputMessage' - properties: {} - type: object - description: An output message item + type: 'object' + description: 'An output message item' example: content: - annotations: [] - text: Hello! How can I help you? - type: output_text - id: msg-123 - role: assistant - status: completed - type: message + text: 'Hello! How can I help you?' + type: 'output_text' + id: 'msg-123' + role: 'assistant' + status: 'completed' + type: 'message' OutputModality: enum: - - text - - image - - embeddings - - audio - - video - - rerank - - speech - - transcription - example: text - type: string + - 'text' + - 'image' + - 'embeddings' + - 'audio' + - 'video' + - 'rerank' + - 'speech' + - 'transcription' + example: 'text' + type: 'string' x-speakeasy-unknown-values: allow OutputModalityEnum: enum: - - text - - image - example: text - type: string + - 'text' + - 'image' + example: 'text' + type: 'string' x-speakeasy-unknown-values: allow OutputReasoningItem: allOf: @@ -17477,125 +17683,127 @@ components: content: items: $ref: '#/components/schemas/ReasoningTextContent' - nullable: true - type: array + type: + - 'array' + - 'null' format: $ref: '#/components/schemas/ReasoningFormat' signature: - description: A signature for the reasoning content, used for verification - example: EvcBCkgIChABGAIqQKkSDbRuVEQUk9qN1odC098l9SEj... - nullable: true - type: string - type: object - description: An output item containing reasoning + description: 'A signature for the reasoning content, used for verification' + example: 'EvcBCkgIChABGAIqQKkSDbRuVEQUk9qN1odC098l9SEj...' + type: + - 'string' + - 'null' + type: 'object' + description: 'An output item containing reasoning' example: content: - - text: First, we analyze the problem... - type: reasoning_text - format: anthropic-claude-v1 - id: reasoning-123 - signature: EvcBCkgIChABGAIqQKkSDbRuVEQUk9qN1odC098l9SEj... - status: completed + - text: 'First, we analyze the problem...' + type: 'reasoning_text' + format: 'anthropic-claude-v1' + id: 'reasoning-123' + signature: 'EvcBCkgIChABGAIqQKkSDbRuVEQUk9qN1odC098l9SEj...' + status: 'completed' summary: - - text: Analyzed the problem and found the optimal solution. - type: summary_text - type: reasoning + - text: 'Analyzed the problem and found the optimal solution.' + type: 'summary_text' + type: 'reasoning' OutputSearchModelsServerToolItem: - description: An openrouter:experimental__search_models server tool output item + description: 'An openrouter:experimental__search_models server tool output item' example: arguments: '{"query":"Claude Opus"}' - id: sm_tmp_abc123 - query: Claude Opus - status: completed - type: openrouter:experimental__search_models + id: 'sm_tmp_abc123' + query: 'Claude Opus' + status: 'completed' + type: 'openrouter:experimental__search_models' properties: arguments: - description: The JSON arguments submitted to the search tool (e.g. {"query":"Claude"}) - type: string + description: 'The JSON arguments submitted to the search tool (e.g. {"query":"Claude"})' + type: 'string' id: - type: string + type: 'string' query: - type: string + type: 'string' status: $ref: '#/components/schemas/ToolCallStatus' type: enum: - - openrouter:experimental__search_models - type: string + - 'openrouter:experimental__search_models' + type: 'string' required: - - status - - type - type: object + - 'status' + - 'type' + type: 'object' OutputShellCallItem: - description: >- - A native `shell_call` output item matching OpenAI's Responses API shape. Emitted for the sandbox-backed `shell` tool. + description: 'A native `shell_call` output item matching OpenAI''s Responses API shape. Emitted for the sandbox-backed `shell` tool.' example: action: commands: - - echo hello + - 'echo hello' max_output_length: null timeout_ms: null - call_id: call_abc123 - id: shc_abc123 - status: completed - type: shell_call + call_id: 'call_abc123' + id: 'shc_abc123' + status: 'completed' + type: 'shell_call' properties: action: properties: commands: items: - type: string - type: array + type: 'string' + type: 'array' max_output_length: - nullable: true - type: integer + type: + - 'integer' + - 'null' timeout_ms: - nullable: true - type: integer + type: + - 'integer' + - 'null' required: - - commands - - max_output_length - - timeout_ms - type: object + - 'commands' + - 'max_output_length' + - 'timeout_ms' + type: 'object' call_id: - type: string + type: 'string' id: - type: string + type: 'string' status: $ref: '#/components/schemas/ShellCallStatus' type: enum: - - shell_call - type: string + - 'shell_call' + type: 'string' required: - - type - - id - - call_id - - status - type: object + - 'type' + - 'id' + - 'call_id' + - 'status' + type: 'object' OutputShellCallOutputItem: - description: >- - A native `shell_call_output` item matching OpenAI's Responses API shape. Carries per-command stdout, stderr, and the exit/timeout outcome. + description: 'A native `shell_call_output` item matching OpenAI''s Responses API shape. Carries per-command stdout, stderr, and the exit/timeout outcome.' example: - call_id: call_abc123 - id: sho_abc123 + call_id: 'call_abc123' + id: 'sho_abc123' output: - outcome: exit_code: 0 - type: exit + type: 'exit' stderr: '' - stdout: | - hello - status: completed - type: shell_call_output + stdout: "hello\n" + status: 'completed' + type: 'shell_call_output' properties: call_id: - type: string + type: 'string' id: - type: string + type: 'string' max_output_length: - nullable: true - type: integer + type: + - 'integer' + - 'null' output: items: properties: @@ -17603,710 +17811,720 @@ components: oneOf: - properties: exit_code: - type: integer + type: 'integer' type: enum: - - exit - type: string + - 'exit' + type: 'string' required: - - type - - exit_code - type: object + - 'type' + - 'exit_code' + type: 'object' - properties: type: enum: - - timeout - type: string + - 'timeout' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' stderr: - type: string + type: 'string' stdout: - type: string + type: 'string' required: - - stdout - - stderr - - outcome - type: object - type: array + - 'stdout' + - 'stderr' + - 'outcome' + type: 'object' + type: 'array' status: $ref: '#/components/schemas/ShellCallStatus' type: enum: - - shell_call_output - type: string + - 'shell_call_output' + type: 'string' required: - - type - - id - - call_id - - status - - output - type: object + - 'type' + - 'id' + - 'call_id' + - 'status' + - 'output' + type: 'object' OutputSubagentServerToolItem: - description: An openrouter:subagent server tool output item + description: 'An openrouter:subagent server tool output item' example: - id: st_tmp_abc123 - status: completed - type: openrouter:subagent + id: 'st_tmp_abc123' + status: 'completed' + type: 'openrouter:subagent' properties: error: - description: Error message when the subagent task did not produce an outcome. - type: string + description: 'Error message when the subagent task did not produce an outcome.' + type: 'string' id: - type: string + type: 'string' model: - description: Slug of the worker model that executed the task. - type: string + description: 'Slug of the worker model that executed the task.' + type: 'string' outcome: - description: The worker model's result (the outcome text returned to the delegating model). - type: string + description: 'The worker model''s result (the outcome text returned to the delegating model).' + type: 'string' status: $ref: '#/components/schemas/ToolCallStatus' task_description: - description: The task description the delegating model sent to the worker. - type: string + description: 'The task description the delegating model sent to the worker.' + type: 'string' task_name: - description: The short task identifier the delegating model supplied. - type: string + description: 'The short task identifier the delegating model supplied.' + type: 'string' type: enum: - - openrouter:subagent - type: string + - 'openrouter:subagent' + type: 'string' required: - - status - - type - type: object + - 'status' + - 'type' + type: 'object' OutputTextEditorServerToolItem: - description: An openrouter:text_editor server tool output item + description: 'An openrouter:text_editor server tool output item' example: - command: view - filePath: /src/main.ts - id: te_tmp_abc123 - status: completed - type: openrouter:text_editor + command: 'view' + filePath: '/src/main.ts' + id: 'te_tmp_abc123' + status: 'completed' + type: 'openrouter:text_editor' properties: command: enum: - - view - - create - - str_replace - - insert - type: string + - 'view' + - 'create' + - 'str_replace' + - 'insert' + type: 'string' x-speakeasy-unknown-values: allow filePath: - type: string + type: 'string' id: - type: string + type: 'string' status: $ref: '#/components/schemas/ToolCallStatus' type: enum: - - openrouter:text_editor - type: string + - 'openrouter:text_editor' + type: 'string' required: - - status - - type - type: object + - 'status' + - 'type' + type: 'object' OutputToolSearchServerToolItem: - description: An openrouter:tool_search server tool output item + description: 'An openrouter:tool_search server tool output item' example: - id: ts_tmp_abc123 - query: weather tools - status: completed - type: openrouter:tool_search + id: 'ts_tmp_abc123' + query: 'weather tools' + status: 'completed' + type: 'openrouter:tool_search' properties: id: - type: string + type: 'string' query: - type: string + type: 'string' status: $ref: '#/components/schemas/ToolCallStatus' type: enum: - - openrouter:tool_search - type: string + - 'openrouter:tool_search' + type: 'string' required: - - status - - type - type: object + - 'status' + - 'type' + type: 'object' OutputWebFetchServerToolItem: - description: An openrouter:web_fetch server tool output item + description: 'An openrouter:web_fetch server tool output item' example: httpStatus: 200 - id: wf_tmp_abc123 - status: completed - title: Example Domain - type: openrouter:web_fetch - url: https://example.com + id: 'wf_tmp_abc123' + status: 'completed' + title: 'Example Domain' + type: 'openrouter:web_fetch' + url: 'https://example.com' properties: content: - type: string + type: 'string' error: - description: The error message if the fetch failed. - type: string + description: 'The error message if the fetch failed.' + type: 'string' httpStatus: - description: The HTTP status code returned by the upstream URL fetch. - type: integer + description: 'The HTTP status code returned by the upstream URL fetch.' + type: 'integer' id: - type: string + type: 'string' status: $ref: '#/components/schemas/ToolCallStatus' title: - type: string + type: 'string' type: enum: - - openrouter:web_fetch - type: string + - 'openrouter:web_fetch' + type: 'string' url: - type: string + type: 'string' required: - - status - - type - type: object + - 'status' + - 'type' + type: 'object' OutputWebSearchCallItem: allOf: - $ref: '#/components/schemas/OutputItemWebSearchCall' - properties: {} - type: object + type: 'object' example: - id: ws-abc123 - status: completed - type: web_search_call + id: 'ws-abc123' + status: 'completed' + type: 'web_search_call' OutputWebSearchServerToolItem: - description: An openrouter:web_search server tool output item + description: 'An openrouter:web_search server tool output item' example: action: - query: latest AI news - type: search - id: ws_tmp_abc123 - status: completed - type: openrouter:web_search + query: 'latest AI news' + type: 'search' + id: 'ws_tmp_abc123' + status: 'completed' + type: 'openrouter:web_search' properties: action: - description: >- - The search action performed, matching OpenAI web_search_call.action shape. Includes the query the model issued and optional source URLs returned by the search provider. + description: 'The search action performed, matching OpenAI web_search_call.action shape. Includes the query the model issued and optional source URLs returned by the search provider.' properties: query: - type: string + type: 'string' sources: items: properties: type: enum: - - url - type: string + - 'url' + type: 'string' url: - type: string + type: 'string' required: - - type - - url - type: object - type: array + - 'type' + - 'url' + type: 'object' + type: 'array' type: enum: - - search - type: string + - 'search' + type: 'string' required: - - type - - query - type: object + - 'type' + - 'query' + type: 'object' id: - type: string + type: 'string' status: $ref: '#/components/schemas/ToolCallStatus' type: enum: - - openrouter:web_search - type: string + - 'openrouter:web_search' + type: 'string' required: - - status - - type - type: object + - 'status' + - 'type' + type: 'object' Parameter: enum: - - temperature - - top_p - - top_k - - min_p - - top_a - - frequency_penalty - - presence_penalty - - repetition_penalty - - max_tokens - - max_completion_tokens - - logit_bias - - logprobs - - top_logprobs - - prediction - - seed - - response_format - - structured_outputs - - stop - - tools - - tool_choice - - parallel_tool_calls - - include_reasoning - - reasoning - - reasoning_effort - - web_search_options - - verbosity - example: temperature - type: string + - 'temperature' + - 'top_p' + - 'top_k' + - 'min_p' + - 'top_a' + - 'frequency_penalty' + - 'presence_penalty' + - 'repetition_penalty' + - 'max_tokens' + - 'max_completion_tokens' + - 'logit_bias' + - 'logprobs' + - 'top_logprobs' + - 'prediction' + - 'seed' + - 'response_format' + - 'structured_outputs' + - 'stop' + - 'tools' + - 'tool_choice' + - 'parallel_tool_calls' + - 'include_reasoning' + - 'reasoning' + - 'reasoning_effort' + - 'web_search_options' + - 'verbosity' + example: 'temperature' + type: 'string' x-speakeasy-unknown-values: allow ParetoRouterPlugin: example: enabled: true - id: pareto-router + id: 'pareto-router' min_coding_score: 0.8 - price_source: prompt + price_source: 'prompt' properties: enabled: - description: Set to false to disable the pareto-router plugin for this request. Defaults to true. - type: boolean + description: 'Set to false to disable the pareto-router plugin for this request. Defaults to true.' + type: 'boolean' id: enum: - - pareto-router - type: string + - 'pareto-router' + type: 'string' min_coding_score: - description: >- - Minimum coding quality score between 0 and 1. Maps to internal quality tiers: >= 0.66 → high (top coding models), >= 0.33 → medium (strong modern flagships), < 0.33 → low (capable coders above the median). Omit to default to the highest tier (equivalent to >= 0.66). + description: 'Minimum coding quality score between 0 and 1. Maps to internal quality tiers: >= 0.66 → high (top coding models), >= 0.33 → medium (strong modern flagships), < 0.33 → low (capable coders above the median). Omit to default to the highest tier (equivalent to >= 0.66).' example: 0.8 - format: double + format: 'double' maximum: 1 minimum: 0 - type: number + type: 'number' price_source: - description: >- - Price source for the Pareto frontier cost axis. "prompt" uses catalog list price (endpoint.pricing.prompt). "weighted_avg" uses traffic-weighted effective input price from ClickHouse, falling back to prompt price for models without traffic data. Defaults to "prompt". + description: 'Price source for the Pareto frontier cost axis. "prompt" uses catalog list price (endpoint.pricing.prompt). "weighted_avg" uses traffic-weighted effective input price from ClickHouse, falling back to prompt price for models without traffic data. Defaults to "prompt".' enum: - - prompt - - weighted_avg - type: string + - 'prompt' + - 'weighted_avg' + type: 'string' x-speakeasy-unknown-values: allow required: - - id - type: object + - 'id' + type: 'object' PayloadTooLargeResponse: - description: Payload Too Large - Request payload exceeds size limits + description: 'Payload Too Large - Request payload exceeds size limits' example: error: code: 413 - message: Request payload too large + message: 'Request payload too large' properties: error: $ref: '#/components/schemas/PayloadTooLargeResponseErrorData' openrouter_metadata: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' user_id: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - error - type: object + - 'error' + type: 'object' PayloadTooLargeResponseErrorData: - description: Error data for PayloadTooLargeResponse + description: 'Error data for PayloadTooLargeResponse' example: code: 413 - message: Request payload too large + message: 'Request payload too large' properties: code: - type: integer + type: 'integer' message: - type: string + type: 'string' metadata: - additionalProperties: - nullable: true - nullable: true - type: object - required: - - code - - message - type: object + additionalProperties: {} + type: + - 'object' + - 'null' + required: + - 'code' + - 'message' + type: 'object' PaymentRequiredResponse: - description: Payment Required - Insufficient credits or quota to complete request + description: 'Payment Required - Insufficient credits or quota to complete request' example: error: code: 402 - message: Insufficient credits. Add more using https://openrouter.ai/credits + message: 'Insufficient credits. Add more using https://openrouter.ai/credits' properties: error: $ref: '#/components/schemas/PaymentRequiredResponseErrorData' openrouter_metadata: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' user_id: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - error - type: object + - 'error' + type: 'object' PaymentRequiredResponseErrorData: - description: Error data for PaymentRequiredResponse + description: 'Error data for PaymentRequiredResponse' example: code: 402 - message: Insufficient credits. Add more using https://openrouter.ai/credits + message: 'Insufficient credits. Add more using https://openrouter.ai/credits' properties: code: - type: integer + type: 'integer' message: - type: string + type: 'string' metadata: - additionalProperties: - nullable: true - nullable: true - type: object - required: - - code - - message - type: object + additionalProperties: {} + type: + - 'object' + - 'null' + required: + - 'code' + - 'message' + type: 'object' PDFParserEngine: anyOf: - enum: - - mistral-ocr - - native - - cloudflare-ai - type: string + - 'mistral-ocr' + - 'native' + - 'cloudflare-ai' + type: 'string' x-speakeasy-unknown-values: allow - enum: - - pdf-text - type: string - description: >- - The engine to use for parsing PDF files. "pdf-text" is deprecated and automatically redirected to "cloudflare-ai". - example: cloudflare-ai + - 'pdf-text' + type: 'string' + description: 'The engine to use for parsing PDF files. "pdf-text" is deprecated and automatically redirected to "cloudflare-ai".' + example: 'cloudflare-ai' PDFParserOptions: - description: Options for PDF parsing. + description: 'Options for PDF parsing.' example: - engine: cloudflare-ai + engine: 'cloudflare-ai' properties: engine: $ref: '#/components/schemas/PDFParserEngine' - type: object + type: 'object' PercentileLatencyCutoffs: - description: Percentile-based latency cutoffs. All specified cutoffs must be met for an endpoint to be preferred. + description: 'Percentile-based latency cutoffs. All specified cutoffs must be met for an endpoint to be preferred.' example: p50: 5 p90: 10 properties: p50: - description: Maximum p50 latency (seconds) - format: double - nullable: true - type: number + description: 'Maximum p50 latency (seconds)' + format: 'double' + type: + - 'number' + - 'null' p75: - description: Maximum p75 latency (seconds) - format: double - nullable: true - type: number + description: 'Maximum p75 latency (seconds)' + format: 'double' + type: + - 'number' + - 'null' p90: - description: Maximum p90 latency (seconds) - format: double - nullable: true - type: number + description: 'Maximum p90 latency (seconds)' + format: 'double' + type: + - 'number' + - 'null' p99: - description: Maximum p99 latency (seconds) - format: double - nullable: true - type: number - type: object + description: 'Maximum p99 latency (seconds)' + format: 'double' + type: + - 'number' + - 'null' + type: 'object' PercentileStats: - description: >- - Latency percentiles in milliseconds over the last 30 minutes. Latency measures time to first token. Only visible when authenticated with an API key or cookie; returns null for unauthenticated requests. + description: 'Latency percentiles in milliseconds over the last 30 minutes. Latency measures time to first token. Only visible when authenticated with an API key or cookie; returns null for unauthenticated requests.' example: p50: 25.5 p75: 35.2 p90: 48.7 p99: 85.3 - nullable: true properties: p50: - description: Median (50th percentile) + description: 'Median (50th percentile)' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' p75: - description: 75th percentile + description: '75th percentile' example: 35.2 - format: double - type: number + format: 'double' + type: 'number' p90: - description: 90th percentile + description: '90th percentile' example: 48.7 - format: double - type: number + format: 'double' + type: 'number' p99: - description: 99th percentile + description: '99th percentile' example: 85.3 - format: double - type: number - required: - - p50 - - p75 - - p90 - - p99 - type: object + format: 'double' + type: 'number' + required: + - 'p50' + - 'p75' + - 'p90' + - 'p99' + type: + - 'object' + - 'null' PercentileThroughputCutoffs: - description: Percentile-based throughput cutoffs. All specified cutoffs must be met for an endpoint to be preferred. + description: 'Percentile-based throughput cutoffs. All specified cutoffs must be met for an endpoint to be preferred.' example: p50: 100 p90: 50 properties: p50: - description: Minimum p50 throughput (tokens/sec) - format: double - nullable: true - type: number + description: 'Minimum p50 throughput (tokens/sec)' + format: 'double' + type: + - 'number' + - 'null' p75: - description: Minimum p75 throughput (tokens/sec) - format: double - nullable: true - type: number + description: 'Minimum p75 throughput (tokens/sec)' + format: 'double' + type: + - 'number' + - 'null' p90: - description: Minimum p90 throughput (tokens/sec) - format: double - nullable: true - type: number + description: 'Minimum p90 throughput (tokens/sec)' + format: 'double' + type: + - 'number' + - 'null' p99: - description: Minimum p99 throughput (tokens/sec) - format: double - nullable: true - type: number - type: object + description: 'Minimum p99 throughput (tokens/sec)' + format: 'double' + type: + - 'number' + - 'null' + type: 'object' PerRequestLimits: - description: Per-request token limits + description: 'Per-request token limits' example: completion_tokens: 1000 prompt_tokens: 1000 - nullable: true properties: completion_tokens: - description: Maximum completion tokens per request + description: 'Maximum completion tokens per request' example: 1000 - type: number + type: 'number' prompt_tokens: - description: Maximum prompt tokens per request + description: 'Maximum prompt tokens per request' example: 1000 - type: number + type: 'number' required: - - prompt_tokens - - completion_tokens - type: object + - 'prompt_tokens' + - 'completion_tokens' + type: + - 'object' + - 'null' PipelineStage: example: data: - action: redacted + action: 'redacted' engines: - - presidio + - 'presidio' flagged: true matched_entity_types: - - EMAIL - - PHONE - name: content-filter - summary: PII redacted via Presidio (EMAIL, PHONE) - type: guardrail + - 'EMAIL' + - 'PHONE' + name: 'content-filter' + summary: 'PII redacted via Presidio (EMAIL, PHONE)' + type: 'guardrail' properties: cost_usd: - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' data: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' guardrail_id: - type: string + type: 'string' guardrail_scope: - type: string + type: 'string' name: - type: string + type: 'string' summary: - type: string + type: 'string' type: $ref: '#/components/schemas/PipelineStageType' required: - - type - - name - type: object + - 'type' + - 'name' + type: 'object' PipelineStageType: - description: >- - Categorical kind of a pipeline stage. Multiple plugins can share a type (e.g. all guardrail-level plugins emit `guardrail`); the `name` field disambiguates which plugin emitted it. + description: 'Categorical kind of a pipeline stage. Multiple plugins can share a type (e.g. all guardrail-level plugins emit `guardrail`); the `name` field disambiguates which plugin emitted it.' enum: - - guardrail - - plugin - - server_tools - - response_healing - - context_compression - example: guardrail - type: string + - 'guardrail' + - 'plugin' + - 'server_tools' + - 'response_healing' + - 'context_compression' + example: 'guardrail' + type: 'string' x-speakeasy-unknown-values: allow Prediction: - description: >- - Static predicted output content. Supported models can use this to reduce latency when much of the response is known in advance. + description: 'Static predicted output content. Supported models can use this to reduce latency when much of the response is known in advance.' example: - content: Expected response - type: content - nullable: true + content: 'Expected response' + type: 'content' properties: content: anyOf: - - type: string + - type: 'string' - items: $ref: '#/components/schemas/PredictionContentText' - type: array + type: 'array' type: enum: - - content - type: string + - 'content' + type: 'string' required: - - type - - content - type: object + - 'type' + - 'content' + type: + - 'object' + - 'null' PredictionContentText: - description: Text content part for a predicted output. + description: 'Text content part for a predicted output.' example: - text: Expected response - type: text + text: 'Expected response' + type: 'text' properties: text: - type: string + type: 'string' type: enum: - - text - type: string + - 'text' + type: 'string' required: - - type - - text - type: object + - 'type' + - 'text' + type: 'object' PreferredMaxLatency: anyOf: - - format: double - type: number + - format: 'double' + type: 'number' - $ref: '#/components/schemas/PercentileLatencyCutoffs' - - nullable: true - description: >- - Preferred maximum latency (in seconds). Can be a number (applies to p50) or an object with percentile-specific cutoffs. Endpoints above the threshold(s) may still be used, but are deprioritized in routing. When using fallback models, this may cause a fallback model to be used instead of the primary model if it meets the threshold. + - type: 'null' + description: 'Preferred maximum latency (in seconds). Can be a number (applies to p50) or an object with percentile-specific cutoffs. Endpoints above the threshold(s) may still be used, but are deprioritized in routing. When using fallback models, this may cause a fallback model to be used instead of the primary model if it meets the threshold.' example: 5 PreferredMinThroughput: anyOf: - - format: double - type: number + - format: 'double' + type: 'number' - $ref: '#/components/schemas/PercentileThroughputCutoffs' - - nullable: true - description: >- - Preferred minimum throughput (in tokens per second). Can be a number (applies to p50) or an object with percentile-specific cutoffs. Endpoints below the threshold(s) may still be used, but are deprioritized in routing. When using fallback models, this may cause a fallback model to be used instead of the primary model if it meets the threshold. + - type: 'null' + description: 'Preferred minimum throughput (in tokens per second). Can be a number (applies to p50) or an object with percentile-specific cutoffs. Endpoints below the threshold(s) may still be used, but are deprioritized in routing. When using fallback models, this may cause a fallback model to be used instead of the primary model if it meets the threshold.' example: 100 Preset: - description: A preset without version details. + description: 'A preset without version details.' example: created_at: '2026-04-20T10:00:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' description: null - designated_version_id: 550e8400-e29b-41d4-a716-446655440000 - id: 650e8400-e29b-41d4-a716-446655440001 - name: my-preset - slug: my-preset - status: active + designated_version_id: '550e8400-e29b-41d4-a716-446655440000' + id: '650e8400-e29b-41d4-a716-446655440001' + name: 'my-preset' + slug: 'my-preset' + status: 'active' status_updated_at: null updated_at: '2026-04-20T10:00:00Z' - workspace_id: 750e8400-e29b-41d4-a716-446655440002 + workspace_id: '750e8400-e29b-41d4-a716-446655440002' properties: created_at: - type: string + type: 'string' creator_user_id: - nullable: true - type: string + type: + - 'string' + - 'null' description: - nullable: true - type: string + type: + - 'string' + - 'null' designated_version_id: - nullable: true - type: string + type: + - 'string' + - 'null' id: - type: string + type: 'string' name: - type: string + type: 'string' slug: - type: string + type: 'string' status: $ref: '#/components/schemas/PresetStatus' status_updated_at: - nullable: true - type: string + type: + - 'string' + - 'null' updated_at: - type: string + type: 'string' workspace_id: - nullable: true - type: string - required: - - id - - creator_user_id - - workspace_id - - name - - slug - - description - - status - - designated_version_id - - created_at - - updated_at - - status_updated_at - type: object + type: + - 'string' + - 'null' + required: + - 'id' + - 'creator_user_id' + - 'workspace_id' + - 'name' + - 'slug' + - 'description' + - 'status' + - 'designated_version_id' + - 'created_at' + - 'updated_at' + - 'status_updated_at' + type: 'object' PresetDesignatedVersion: - description: A specific version of a preset, containing config and optional system prompt. + description: 'A specific version of a preset, containing config and optional system prompt.' example: config: - model: openai/gpt-4o + model: 'openai/gpt-4o' temperature: 0.7 created_at: '2026-04-20T10:00:00Z' - creator_id: user_2dHFtVWx2n56w6HkM0000000000 - id: 550e8400-e29b-41d4-a716-446655440000 - preset_id: 650e8400-e29b-41d4-a716-446655440001 - system_prompt: You are a helpful assistant. + creator_id: 'user_2dHFtVWx2n56w6HkM0000000000' + id: '550e8400-e29b-41d4-a716-446655440000' + preset_id: '650e8400-e29b-41d4-a716-446655440001' + system_prompt: 'You are a helpful assistant.' updated_at: '2026-04-20T10:00:00Z' version: 1 - nullable: true properties: config: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' created_at: - type: string + type: 'string' creator_id: - type: string + type: 'string' id: - type: string + type: 'string' preset_id: - type: string + type: 'string' system_prompt: - nullable: true - type: string + type: + - 'string' + - 'null' updated_at: - type: string + type: 'string' version: - type: integer - required: - - id - - preset_id - - creator_id - - version - - system_prompt - - config - - created_at - - updated_at - type: object + type: 'integer' + required: + - 'id' + - 'preset_id' + - 'creator_id' + - 'version' + - 'system_prompt' + - 'config' + - 'created_at' + - 'updated_at' + type: + - 'object' + - 'null' PresetStatus: - description: The status of a preset. + description: 'The status of a preset.' enum: - - active - - disabled - - archived - example: active - type: string + - 'active' + - 'disabled' + - 'archived' + example: 'active' + type: 'string' x-speakeasy-unknown-values: allow PresetWithDesignatedVersion: allOf: @@ -18315,1179 +18533,1052 @@ components: designated_version: $ref: '#/components/schemas/PresetDesignatedVersion' required: - - designated_version - type: object - description: A preset with its currently designated version. + - 'designated_version' + type: 'object' + description: 'A preset with its currently designated version.' example: created_at: '2026-04-20T10:00:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' description: null designated_version: config: - model: openai/gpt-4o + model: 'openai/gpt-4o' temperature: 0.7 created_at: '2026-04-20T10:00:00Z' - creator_id: user_2dHFtVWx2n56w6HkM0000000000 - id: 550e8400-e29b-41d4-a716-446655440000 - preset_id: 650e8400-e29b-41d4-a716-446655440001 - system_prompt: You are a helpful assistant. + creator_id: 'user_2dHFtVWx2n56w6HkM0000000000' + id: '550e8400-e29b-41d4-a716-446655440000' + preset_id: '650e8400-e29b-41d4-a716-446655440001' + system_prompt: 'You are a helpful assistant.' updated_at: '2026-04-20T10:00:00Z' version: 1 - designated_version_id: 550e8400-e29b-41d4-a716-446655440000 - id: 650e8400-e29b-41d4-a716-446655440001 - name: my-preset - slug: my-preset - status: active + designated_version_id: '550e8400-e29b-41d4-a716-446655440000' + id: '650e8400-e29b-41d4-a716-446655440001' + name: 'my-preset' + slug: 'my-preset' + status: 'active' status_updated_at: null updated_at: '2026-04-20T10:00:00Z' - workspace_id: 750e8400-e29b-41d4-a716-446655440002 + workspace_id: '750e8400-e29b-41d4-a716-446655440002' Preview_20250311_WebSearchServerTool: - description: Web search preview tool configuration (2025-03-11 version) + description: 'Web search preview tool configuration (2025-03-11 version)' example: - type: web_search_preview_2025_03_11 + type: 'web_search_preview_2025_03_11' properties: engine: $ref: '#/components/schemas/WebSearchEngineEnum' filters: $ref: '#/components/schemas/WebSearchDomainFilter' max_results: - description: >- - Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped. + description: 'Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped.' example: 5 - type: integer + type: 'integer' search_context_size: $ref: '#/components/schemas/SearchContextSizeEnum' type: enum: - - web_search_preview_2025_03_11 - type: string + - 'web_search_preview_2025_03_11' + type: 'string' user_location: $ref: '#/components/schemas/Preview_WebSearchUserLocation' required: - - type - type: object + - 'type' + type: 'object' Preview_WebSearchServerTool: - description: Web search preview tool configuration + description: 'Web search preview tool configuration' example: - type: web_search_preview + type: 'web_search_preview' properties: engine: $ref: '#/components/schemas/WebSearchEngineEnum' filters: $ref: '#/components/schemas/WebSearchDomainFilter' max_results: - description: >- - Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped. + description: 'Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped.' example: 5 - type: integer + type: 'integer' search_context_size: $ref: '#/components/schemas/SearchContextSizeEnum' type: enum: - - web_search_preview - type: string + - 'web_search_preview' + type: 'string' user_location: $ref: '#/components/schemas/Preview_WebSearchUserLocation' required: - - type - type: object + - 'type' + type: 'object' Preview_WebSearchUserLocation: example: - city: San Francisco - country: USA - region: California - timezone: America/Los_Angeles - type: approximate - nullable: true + city: 'San Francisco' + country: 'USA' + region: 'California' + timezone: 'America/Los_Angeles' + type: 'approximate' properties: city: - nullable: true - type: string + type: + - 'string' + - 'null' country: - nullable: true - type: string + type: + - 'string' + - 'null' region: - nullable: true - type: string + type: + - 'string' + - 'null' timezone: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - approximate - type: string + - 'approximate' + type: 'string' required: - - type - type: object + - 'type' + type: + - 'object' + - 'null' PricingOverride: - description: >- - A conditional override of the base pricing. An entry applies only when all of its condition fields (e.g. min_prompt_tokens, or the utc_start/utc_end time window) match the request; among applicable entries, later entries win per price key; price keys absent from an entry inherit the base price. + description: 'A conditional override of the base pricing. An entry applies only when all of its condition fields (e.g. min_prompt_tokens, or the utc_start/utc_end time window) match the request; among applicable entries, later entries win per price key; price keys absent from an entry inherit the base price.' example: completion: '0.00002' min_prompt_tokens: 200000 prompt: '0.000005' properties: audio: - description: Overridden price in USD per audio input token - type: string + description: 'Overridden price in USD per audio input token' + type: 'string' completion: - description: Overridden price in USD per token for completion (output) generation - type: string + description: 'Overridden price in USD per token for completion (output) generation' + type: 'string' input_audio_cache: - description: Overridden price in USD per cached audio input token - type: string + description: 'Overridden price in USD per cached audio input token' + type: 'string' input_cache_read: - description: Overridden price in USD per cached input token (read) - type: string + description: 'Overridden price in USD per cached input token (read)' + type: 'string' input_cache_write: - description: Overridden price in USD per cache-write token - type: string + description: 'Overridden price in USD per cache-write token' + type: 'string' input_cache_write_1h: - description: Overridden price in USD per 1-hour cache-write token - type: string + description: 'Overridden price in USD per 1-hour cache-write token' + type: 'string' min_prompt_tokens: - description: >- - Condition: the entry applies when the total prompt tokens of a request are strictly greater than this threshold - format: double - type: number + description: 'Condition: the entry applies when the total prompt tokens of a request are strictly greater than this threshold' + format: 'double' + type: 'number' prompt: - description: Overridden price in USD per token for prompt (input) processing - type: string + description: 'Overridden price in USD per token for prompt (input) processing' + type: 'string' utc_end: description: 'Condition: exclusive end of a daily UTC time window as an HHMM clock number (e.g. 400 = 04:00)' - format: double - type: number + format: 'double' + type: 'number' utc_start: - description: >- - Condition: inclusive start of a daily UTC time window as an HHMM clock number (e.g. 100 = 01:00, 1030 = 10:30). The entry applies while the current UTC time is inside the half-open window [utc_start, utc_end), which may wrap past midnight (utc_start > utc_end). - format: double - type: number - type: object + description: 'Condition: inclusive start of a daily UTC time window as an HHMM clock number (e.g. 100 = 01:00, 1030 = 10:30). The entry applies while the current UTC time is inside the half-open window [utc_start, utc_end), which may wrap past midnight (utc_start > utc_end).' + format: 'double' + type: 'number' + type: 'object' PromptCacheBreakpoint: - description: >- - Marks an explicit prompt-cache boundary on this content block (OpenAI-style). Everything through the block carrying this marker is part of the candidate cached prefix. Supported natively by OpenAI GPT-5.6 and newer; on providers that use Anthropic-style `cache_control`, OpenRouter converts the marker to that format automatically. + description: 'Marks an explicit prompt-cache boundary on this content block (OpenAI-style). Everything through the block carrying this marker is part of the candidate cached prefix. Supported natively by OpenAI GPT-5.6 and newer; on providers that use Anthropic-style `cache_control`, OpenRouter converts the marker to that format automatically.' example: - mode: explicit - nullable: true + mode: 'explicit' properties: mode: enum: - - explicit - type: string + - 'explicit' + type: 'string' required: - - mode - type: object + - 'mode' + type: + - 'object' + - 'null' PromptCacheOptions: - description: >- - Request-level prompt-cache controls. `mode: "explicit"` disables OpenAI-managed breakpoints so only blocks marked with `prompt_cache_breakpoint` are cached. Only supported by OpenAI GPT-5.6 and newer. + description: 'Request-level prompt-cache controls. `mode: "explicit"` disables OpenAI-managed breakpoints so only blocks marked with `prompt_cache_breakpoint` are cached. Only supported by OpenAI GPT-5.6 and newer.' example: - mode: explicit - ttl: 30m - nullable: true + mode: 'explicit' + ttl: '30m' properties: mode: enum: - - explicit - type: string + - 'explicit' + type: 'string' ttl: - nullable: true - type: string - required: - - mode - type: object + type: + - 'string' + - 'null' + required: + - 'mode' + type: + - 'object' + - 'null' PromptInjectionScanScope: - description: >- - Which message roles to scan for prompt injection. Only applies to the regex-prompt-injection builtin. Defaults to all_messages. + description: 'Which message roles to scan for prompt injection. Only applies to the regex-prompt-injection builtin. Defaults to all_messages.' enum: - - user_only - - all_messages - example: user_only - type: string + - 'user_only' + - 'all_messages' + example: 'user_only' + type: 'string' x-speakeasy-unknown-values: allow ProviderName: enum: - - Meta - - AkashML - - AI21 - - AionLabs - - Alibaba - - Ambient - - Baidu - - Amazon Bedrock - - Amazon Nova - - Anthropic - - Arcee AI - - AtlasCloud - - Avian - - Azure - - BaseTen - - BytePlus - - Black Forest Labs - - Cerebras - - Chutes - - Cirrascale - - Clarifai - - Cloudflare - - Cohere - - Crucible - - Crusoe - - Darkbloom - - Decart - - Deepgram - - DeepInfra - - DeepSeek - - DekaLLM - - DigitalOcean - - Featherless - - Fireworks - - Friendli - - GMICloud - - Google - - Google AI Studio - - Groq - - HeyGen - - Inception - - Inceptron - - InferenceNet - - Ionstream - - Infermatic - - Io Net - - Inferact vLLM - - Inflection - - Liquid - - Mara - - Mancer 2 - - Minimax - - ModelRun - - Mistral - - Modular - - Moonshot AI - - Morph - - NCompass - - Nebius - - Nex AGI - - NextBit - - Novita - - Nvidia - - OpenAI - - OpenInference - - Parasail - - Poolside - - Perceptron - - Perplexity - - Phala - - Recraft - - Reka - - Relace - - Sail Research - - Sakana AI - - SambaNova - - Seed - - SiliconFlow - - Sourceful - - StepFun - - Stealth - - StreamLake - - Switchpoint - - Tenstorrent - - Together - - Upstage - - Venice - - Wafer - - WandB - - Quiver - - Krea - - Xiaomi - - xAI - - Z.AI - - FakeProvider - example: OpenAI - type: string + - 'AkashML' + - 'AI21' + - 'AionLabs' + - 'Alibaba' + - 'Ambient' + - 'Baidu' + - 'Amazon Bedrock' + - 'Amazon Nova' + - 'Anthropic' + - 'Arcee AI' + - 'AtlasCloud' + - 'Avian' + - 'Azure' + - 'BaseTen' + - 'BytePlus' + - 'Black Forest Labs' + - 'Cerebras' + - 'Chutes' + - 'Cirrascale' + - 'Clarifai' + - 'Cloudflare' + - 'Cohere' + - 'Crucible' + - 'Crusoe' + - 'Darkbloom' + - 'Decart' + - 'Deepgram' + - 'DeepInfra' + - 'DeepSeek' + - 'DekaLLM' + - 'DigitalOcean' + - 'Featherless' + - 'Fireworks' + - 'Friendli' + - 'GMICloud' + - 'Google' + - 'Google AI Studio' + - 'Groq' + - 'HeyGen' + - 'Inception' + - 'Inceptron' + - 'InferenceNet' + - 'Ionstream' + - 'Infermatic' + - 'Io Net' + - 'Inferact vLLM' + - 'Inflection' + - 'Liquid' + - 'Mara' + - 'Mancer 2' + - 'Meta' + - 'Minimax' + - 'ModelRun' + - 'Mistral' + - 'Modular' + - 'Moonshot AI' + - 'Morph' + - 'NCompass' + - 'Nebius' + - 'Nex AGI' + - 'NextBit' + - 'Novita' + - 'Nvidia' + - 'OpenAI' + - 'OpenInference' + - 'Parasail' + - 'Poolside' + - 'Perceptron' + - 'Perplexity' + - 'Phala' + - 'Recraft' + - 'Reka' + - 'Relace' + - 'Sail Research' + - 'Sakana AI' + - 'SambaNova' + - 'Seed' + - 'SiliconFlow' + - 'Sourceful' + - 'StepFun' + - 'Stealth' + - 'StreamLake' + - 'Switchpoint' + - 'Tencent' + - 'Tenstorrent' + - 'Together' + - 'Upstage' + - 'Venice' + - 'Wafer' + - 'WandB' + - 'Quiver' + - 'Krea' + - 'Xiaomi' + - 'xAI' + - 'Z.AI' + - 'FakeProvider' + example: 'OpenAI' + type: 'string' x-speakeasy-unknown-values: allow ProviderOptions: - description: >- - Provider-specific options keyed by provider slug. Only options for the matched provider are forwarded; the rest are ignored. Unrecognized keys are silently dropped. + description: 'Provider-specific options keyed by provider slug. Only options for the matched provider are forwarded; the rest are ignored. Unrecognized keys are silently dropped.' example: openai: max_tokens: 1000 properties: 01ai: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' ai21: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' aion-labs: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' akashml: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' alibaba: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' amazon-bedrock: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' amazon-nova: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' ambient: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' anthropic: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' anyscale: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' arcee-ai: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' atlas-cloud: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' atoma: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' avian: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' azure: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' baidu: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' baseten: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' black-forest-labs: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' byteplus: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' centml: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' cerebras: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' chutes: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' cirrascale: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' clarifai: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' cloudflare: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' cohere: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' crofai: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' crucible: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' crusoe: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' darkbloom: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' decart: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' deepgram: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' deepinfra: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' deepseek: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' dekallm: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' digitalocean: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' enfer: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' fake-provider: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' featherless: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' fireworks: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' friendli: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' gmicloud: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' google-ai-studio: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' google-vertex: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' gopomelo: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' groq: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' heygen: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' huggingface: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' hyperbolic: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' hyperbolic-quantized: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' inception: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' inceptron: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' inferact-vllm: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' inference-net: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' infermatic: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' inflection: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' inocloud: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' io-net: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' ionstream: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' klusterai: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' krea: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' lambda: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' lepton: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' liquid: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' lynn: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' lynn-private: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' mancer: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' mancer-old: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' mara: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' meta: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' minimax: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' mistral: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' modal: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' modelrun: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' modular: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' moonshotai: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' morph: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' ncompass: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' nebius: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' nex-agi: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' nextbit: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' nineteen: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' novita: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' nvidia: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' octoai: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' open-inference: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' openai: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' parasail: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' perceptron: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' perplexity: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' phala: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' poolside: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' quiver: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' recraft: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' recursal: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' reflection: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' reka: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' relace: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' replicate: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' sail-research: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' sakana: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' sambanova: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' sambanova-cloaked: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' seed: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' sf-compute: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' siliconflow: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' sourceful: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' stealth: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' stepfun: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' streamlake: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' switchpoint: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' targon: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' + tencent: + additionalProperties: {} + type: 'object' tenstorrent: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' together: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' together-lite: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' ubicloud: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' upstage: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' venice: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' wafer: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' wandb: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' xai: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' xiaomi: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' z-ai: - additionalProperties: - nullable: true - type: object - type: object + additionalProperties: {} + type: 'object' + type: 'object' ProviderOverloadedResponse: - description: Provider Overloaded - Provider is temporarily overloaded + description: 'Provider Overloaded - Provider is temporarily overloaded' example: error: code: 529 - message: Provider returned error + message: 'Provider returned error' properties: error: $ref: '#/components/schemas/ProviderOverloadedResponseErrorData' openrouter_metadata: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' user_id: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - error - type: object + - 'error' + type: 'object' ProviderOverloadedResponseErrorData: - description: Error data for ProviderOverloadedResponse + description: 'Error data for ProviderOverloadedResponse' example: code: 529 - message: Provider returned error + message: 'Provider returned error' properties: code: - type: integer + type: 'integer' message: - type: string + type: 'string' metadata: - additionalProperties: - nullable: true - nullable: true - type: object - required: - - code - - message - type: object + additionalProperties: {} + type: + - 'object' + - 'null' + required: + - 'code' + - 'message' + type: 'object' ProviderPreferences: additionalProperties: false - description: When multiple model providers are available, optionally indicate your routing preference. + description: 'When multiple model providers are available, optionally indicate your routing preference.' example: allow_fallbacks: true - nullable: true properties: allow_fallbacks: - description: > - Whether to allow backup providers to serve requests - - - true: (default) when the primary provider (or your custom providers in "order") is unavailable, use the next best provider. - - - false: use only the primary/custom provider, and return the upstream error if it's unavailable. - - nullable: true - type: boolean + description: "Whether to allow backup providers to serve requests\n- true: (default) when the primary provider (or your custom providers in \"order\") is unavailable, use the next best provider.\n- false: use only the primary/custom provider, and return the upstream error if it's unavailable.\n" + type: + - 'boolean' + - 'null' data_collection: - description: >- - Data collection setting. If no available model provider meets the requirement, your request will return an error. - - - allow: (default) allow providers which store user data non-transiently and may train on it - - - - deny: use only providers which do not collect user data. - enum: - - deny - - allow + description: "Data collection setting. If no available model provider meets the requirement, your request will return an error.\n- allow: (default) allow providers which store user data non-transiently and may train on it\n\n- deny: use only providers which do not collect user data." + enum: + - 'deny' + - 'allow' - null - example: allow - nullable: true - type: string + example: 'allow' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow enforce_distillable_text: - description: >- - Whether to restrict routing to only models that allow text distillation. When true, only models where the author has allowed distillation will be used. + description: 'Whether to restrict routing to only models that allow text distillation. When true, only models where the author has allowed distillation will be used.' example: true - nullable: true - type: boolean + type: + - 'boolean' + - 'null' ignore: - description: >- - List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored provider settings for this request. + description: 'List of provider slugs to ignore. If provided, this list is merged with your account-wide ignored provider settings for this request.' example: - - openai - - anthropic + - 'openai' + - 'anthropic' items: anyOf: - $ref: '#/components/schemas/ProviderName' - - type: string - nullable: true - type: array + - type: 'string' + type: + - 'array' + - 'null' max_price: - description: >- - The object specifying the maximum price you want to pay for this request. USD price per million tokens, for prompt and completion. + description: 'The object specifying the maximum price you want to pay for this request. USD price per million tokens, for prompt and completion.' properties: audio: - description: Maximum price in USD per audio unit - type: string + description: 'Maximum price in USD per audio unit' + type: 'string' completion: - description: Maximum price in USD per million completion tokens - type: string + description: 'Maximum price in USD per million completion tokens' + type: 'string' image: - description: Maximum price in USD per image - type: string + description: 'Maximum price in USD per image' + type: 'string' prompt: - description: Maximum price in USD per million prompt tokens - type: string + description: 'Maximum price in USD per million prompt tokens' + type: 'string' request: - description: Maximum price in USD per request - type: string - type: object + description: 'Maximum price in USD per request' + type: 'string' + type: 'object' only: - description: >- - List of provider slugs to allow. If provided, this list is merged with your account-wide allowed provider settings for this request. + description: 'List of provider slugs to allow. If provided, this list is merged with your account-wide allowed provider settings for this request.' example: - - openai - - anthropic + - 'openai' + - 'anthropic' items: anyOf: - $ref: '#/components/schemas/ProviderName' - - type: string - nullable: true - type: array + - type: 'string' + type: + - 'array' + - 'null' order: - description: >- - An ordered list of provider slugs. The router will attempt to use the first provider in the subset of this list that supports your requested model, and fall back to the next if it is unavailable. If no providers are available, the request will fail with an error message. + description: 'An ordered list of provider slugs. The router will attempt to use the first provider in the subset of this list that supports your requested model, and fall back to the next if it is unavailable. If no providers are available, the request will fail with an error message.' example: - - openai - - anthropic + - 'openai' + - 'anthropic' items: anyOf: - $ref: '#/components/schemas/ProviderName' - - type: string - nullable: true - type: array + - type: 'string' + type: + - 'array' + - 'null' preferred_max_latency: $ref: '#/components/schemas/PreferredMaxLatency' preferred_min_throughput: $ref: '#/components/schemas/PreferredMinThroughput' quantizations: - description: A list of quantization levels to filter the provider by. + description: 'A list of quantization levels to filter the provider by.' items: $ref: '#/components/schemas/Quantization' - nullable: true - type: array + type: + - 'array' + - 'null' require_parameters: - description: >- - Whether to filter providers to only those that support the parameters you've provided. If this setting is omitted or set to false, then providers will receive only the parameters they support, and ignore the rest. - nullable: true - type: boolean + description: 'Whether to filter providers to only those that support the parameters you''ve provided. If this setting is omitted or set to false, then providers will receive only the parameters they support, and ignore the rest.' + type: + - 'boolean' + - 'null' sort: anyOf: - $ref: '#/components/schemas/ProviderSort' - $ref: '#/components/schemas/ProviderSortConfig' - - nullable: true - description: >- - The sorting strategy to use for this request, if "order" is not specified. When set, no load balancing is performed. - example: price + - type: 'null' + description: 'The sorting strategy to use for this request, if "order" is not specified. When set, no load balancing is performed.' + example: 'price' zdr: - description: >- - Whether to restrict routing to only ZDR (Zero Data Retention) endpoints. When true, only endpoints that do not retain prompts will be used. + description: 'Whether to restrict routing to only ZDR (Zero Data Retention) endpoints. When true, only endpoints that do not retain prompts will be used.' example: true - nullable: true - type: boolean - type: object + type: + - 'boolean' + - 'null' + type: + - 'object' + - 'null' ProviderResponse: - description: Details of a provider response for a generation attempt + description: 'Details of a provider response for a generation attempt' example: - endpoint_id: ep_abc123 - id: chatcmpl-abc123 + endpoint_id: 'ep_abc123' + id: 'chatcmpl-abc123' is_byok: false latency: 1200 - model_permaslug: openai/gpt-4 - provider_name: OpenAI + model_permaslug: 'openai/gpt-4' + provider_name: 'OpenAI' status: 200 properties: endpoint_id: - description: Internal endpoint identifier - example: ep_abc123 - type: string + description: 'Internal endpoint identifier' + example: 'ep_abc123' + type: 'string' id: - description: Upstream provider response identifier - example: chatcmpl-abc123 - type: string + description: 'Upstream provider response identifier' + example: 'chatcmpl-abc123' + type: 'string' is_byok: - description: Whether the request used a bring-your-own-key + description: 'Whether the request used a bring-your-own-key' example: false - type: boolean + type: 'boolean' latency: - description: Response latency in milliseconds + description: 'Response latency in milliseconds' example: 1200 - format: double - type: number + format: 'double' + type: 'number' model_permaslug: - description: Canonical model slug - example: openai/gpt-4 - type: string + description: 'Canonical model slug' + example: 'openai/gpt-4' + type: 'string' provider_name: - description: Name of the provider - enum: - - AnyScale - - Atoma - - Cent-ML - - CrofAI - - Enfer - - GoPomelo - - HuggingFace - - Hyperbolic - - Hyperbolic 2 - - InoCloud - - Kluster - - Lambda - - Lepton - - Lynn 2 - - Lynn - - Mancer - - Meta - - Modal - - Nineteen - - OctoAI - - Recursal - - Reflection - - Replicate - - SambaNova 2 - - SF Compute - - Targon - - Together 2 - - Ubicloud - - 01.AI - - AkashML - - AI21 - - AionLabs - - Alibaba - - Ambient - - Baidu - - Amazon Bedrock - - Amazon Nova - - Anthropic - - Arcee AI - - AtlasCloud - - Avian - - Azure - - BaseTen - - BytePlus - - Black Forest Labs - - Cerebras - - Chutes - - Cirrascale - - Clarifai - - Cloudflare - - Cohere - - Crucible - - Crusoe - - Darkbloom - - Decart - - Deepgram - - DeepInfra - - DeepSeek - - DekaLLM - - DigitalOcean - - Featherless - - Fireworks - - Friendli - - GMICloud - - Google - - Google AI Studio - - Groq - - HeyGen - - Inception - - Inceptron - - InferenceNet - - Ionstream - - Infermatic - - Io Net - - Inferact vLLM - - Inflection - - Liquid - - Mara - - Mancer 2 - - Minimax - - ModelRun - - Mistral - - Modular - - Moonshot AI - - Morph - - NCompass - - Nebius - - Nex AGI - - NextBit - - Novita - - Nvidia - - OpenAI - - OpenInference - - Parasail - - Poolside - - Perceptron - - Perplexity - - Phala - - Recraft - - Reka - - Relace - - Sail Research - - Sakana AI - - SambaNova - - Seed - - SiliconFlow - - Sourceful - - StepFun - - Stealth - - StreamLake - - Switchpoint - - Tenstorrent - - Together - - Upstage - - Venice - - Wafer - - WandB - - Quiver - - Krea - - Xiaomi - - xAI - - Z.AI - - FakeProvider - example: OpenAI - type: string + description: 'Name of the provider' + enum: + - 'AnyScale' + - 'Atoma' + - 'Cent-ML' + - 'CrofAI' + - 'Enfer' + - 'GoPomelo' + - 'HuggingFace' + - 'Hyperbolic' + - 'Hyperbolic 2' + - 'InoCloud' + - 'Kluster' + - 'Lambda' + - 'Lepton' + - 'Lynn 2' + - 'Lynn' + - 'Mancer' + - 'Modal' + - 'Nineteen' + - 'OctoAI' + - 'Recursal' + - 'Reflection' + - 'Replicate' + - 'SambaNova 2' + - 'SF Compute' + - 'Targon' + - 'Together 2' + - 'Ubicloud' + - '01.AI' + - 'AkashML' + - 'AI21' + - 'AionLabs' + - 'Alibaba' + - 'Ambient' + - 'Baidu' + - 'Amazon Bedrock' + - 'Amazon Nova' + - 'Anthropic' + - 'Arcee AI' + - 'AtlasCloud' + - 'Avian' + - 'Azure' + - 'BaseTen' + - 'BytePlus' + - 'Black Forest Labs' + - 'Cerebras' + - 'Chutes' + - 'Cirrascale' + - 'Clarifai' + - 'Cloudflare' + - 'Cohere' + - 'Crucible' + - 'Crusoe' + - 'Darkbloom' + - 'Decart' + - 'Deepgram' + - 'DeepInfra' + - 'DeepSeek' + - 'DekaLLM' + - 'DigitalOcean' + - 'Featherless' + - 'Fireworks' + - 'Friendli' + - 'GMICloud' + - 'Google' + - 'Google AI Studio' + - 'Groq' + - 'HeyGen' + - 'Inception' + - 'Inceptron' + - 'InferenceNet' + - 'Ionstream' + - 'Infermatic' + - 'Io Net' + - 'Inferact vLLM' + - 'Inflection' + - 'Liquid' + - 'Mara' + - 'Mancer 2' + - 'Meta' + - 'Minimax' + - 'ModelRun' + - 'Mistral' + - 'Modular' + - 'Moonshot AI' + - 'Morph' + - 'NCompass' + - 'Nebius' + - 'Nex AGI' + - 'NextBit' + - 'Novita' + - 'Nvidia' + - 'OpenAI' + - 'OpenInference' + - 'Parasail' + - 'Poolside' + - 'Perceptron' + - 'Perplexity' + - 'Phala' + - 'Recraft' + - 'Reka' + - 'Relace' + - 'Sail Research' + - 'Sakana AI' + - 'SambaNova' + - 'Seed' + - 'SiliconFlow' + - 'Sourceful' + - 'StepFun' + - 'Stealth' + - 'StreamLake' + - 'Switchpoint' + - 'Tencent' + - 'Tenstorrent' + - 'Together' + - 'Upstage' + - 'Venice' + - 'Wafer' + - 'WandB' + - 'Quiver' + - 'Krea' + - 'Xiaomi' + - 'xAI' + - 'Z.AI' + - 'FakeProvider' + example: 'OpenAI' + type: 'string' x-speakeasy-unknown-values: allow routed_service_tier: - description: >- - The service tier this request was routed to (e.g. flex, priority). The tier actually applied and billed is determined by the provider response and may differ. + description: 'The service tier this request was routed to (e.g. flex, priority). The tier actually applied and billed is determined by the provider response and may differ.' enum: - - flex - - priority - example: priority - type: string + - 'flex' + - 'priority' + example: 'priority' + type: 'string' x-speakeasy-unknown-values: allow status: - description: HTTP status code from the provider + description: 'HTTP status code from the provider' example: 200 - nullable: true - type: integer + type: + - 'integer' + - 'null' required: - - status - type: object + - 'status' + type: 'object' ProviderSort: - description: The provider sorting strategy (price, throughput, latency) + description: 'The provider sorting strategy (price, throughput, latency)' enum: - - price - - throughput - - latency - - exacto - example: price - type: string + - 'price' + - 'throughput' + - 'latency' + - 'exacto' + example: 'price' + type: 'string' x-speakeasy-unknown-values: allow ProviderSortConfig: - description: The provider sorting strategy (price, throughput, latency) + description: 'The provider sorting strategy (price, throughput, latency)' example: - by: price - partition: model + by: 'price' + partition: 'model' properties: by: - description: The provider sorting strategy (price, throughput, latency) + description: 'The provider sorting strategy (price, throughput, latency)' enum: - - price - - throughput - - latency - - exacto + - 'price' + - 'throughput' + - 'latency' + - 'exacto' - null - example: price - nullable: true - type: string + example: 'price' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow partition: - description: >- - Partitioning strategy for sorting: "model" (default) groups endpoints by model before sorting (fallback models remain fallbacks), "none" sorts all endpoints together regardless of model. + description: 'Partitioning strategy for sorting: "model" (default) groups endpoints by model before sorting (fallback models remain fallbacks), "none" sorts all endpoints together regardless of model.' enum: - - model - - none + - 'model' + - 'none' - null - example: model - nullable: true - type: string + example: 'model' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow - type: object + type: 'object' PublicEndpoint: - description: Information about a specific model endpoint + description: 'Information about a specific model endpoint' example: context_length: 8192 latency_last_30m: @@ -19497,23 +19588,23 @@ components: p99: 0.85 max_completion_tokens: 4096 max_prompt_tokens: 8192 - model_id: openai/gpt-4 - model_name: GPT-4 + model_id: 'openai/gpt-4' + model_name: 'GPT-4' name: 'OpenAI: GPT-4' pricing: completion: '0.00006' image: '0' prompt: '0.00003' request: '0' - provider_name: OpenAI - quantization: fp16 + provider_name: 'OpenAI' + quantization: 'fp16' status: 0 supported_parameters: - - temperature - - top_p - - max_tokens + - 'temperature' + - 'top_p' + - 'max_tokens' supports_implicit_caching: true - tag: openai + tag: 'openai' throughput_last_30m: p50: 45.2 p75: 38.5 @@ -19524,142 +19615,140 @@ components: uptime_last_5m: 100 properties: context_length: - type: integer + type: 'integer' latency_last_30m: $ref: '#/components/schemas/PercentileStats' max_completion_tokens: - nullable: true - type: integer + type: + - 'integer' + - 'null' max_prompt_tokens: - nullable: true - type: integer + type: + - 'integer' + - 'null' model_id: - description: The unique identifier for the model (permaslug) - example: openai/gpt-4 - type: string + description: 'The unique identifier for the model (permaslug)' + example: 'openai/gpt-4' + type: 'string' model_name: - type: string + type: 'string' name: - type: string + type: 'string' pricing: properties: audio: - description: Price in USD per audio input token - type: string + description: 'Price in USD per audio input token' + type: 'string' audio_output: - description: Price in USD per audio output token - type: string + description: 'Price in USD per audio output token' + type: 'string' completion: - description: Price in USD per token for completion (output) generation - type: string + description: 'Price in USD per token for completion (output) generation' + type: 'string' discount: - description: >- - Fractional discount applied to this endpoint's pricing; the price is multiplied by (1 - discount) (0 = no discount, 1 = free) - format: double - type: number + description: 'Fractional discount applied to this endpoint''s pricing; the price is multiplied by (1 - discount) (0 = no discount, 1 = free)' + format: 'double' + type: 'number' image: - description: Price in USD per input image - type: string + description: 'Price in USD per input image' + type: 'string' image_output: - description: Price in USD per output image - type: string + description: 'Price in USD per output image' + type: 'string' image_token: - description: Price in USD per image token - type: string + description: 'Price in USD per image token' + type: 'string' input_audio_cache: - description: Price in USD per cached audio input token - type: string + description: 'Price in USD per cached audio input token' + type: 'string' input_cache_read: - description: Price in USD per cached input token (read) - type: string + description: 'Price in USD per cached input token (read)' + type: 'string' input_cache_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 + 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 + 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' internal_reasoning: - description: Price in USD per internal reasoning token - type: string + description: 'Price in USD per internal reasoning token' + type: 'string' overrides: - description: >- - Conditional overrides of the base pricing (e.g. long-context or time-based pricing). An entry applies when all of its condition fields (e.g. min_prompt_tokens, or the utc_start/utc_end time window) match the request; among applicable entries, later entries win per key; price keys absent from an entry inherit the base price. The top-level pricing keys always reflect the price that applies under default conditions. + description: 'Conditional overrides of the base pricing (e.g. long-context or time-based pricing). An entry applies when all of its condition fields (e.g. min_prompt_tokens, or the utc_start/utc_end time window) match the request; among applicable entries, later entries win per key; price keys absent from an entry inherit the base price. The top-level pricing keys always reflect the price that applies under default conditions.' items: $ref: '#/components/schemas/PricingOverride' - type: array + type: 'array' prompt: - description: Price in USD per token for prompt (input) processing - type: string + description: 'Price in USD per token for prompt (input) processing' + type: 'string' request: - description: Price in USD per request - type: string + description: 'Price in USD per request' + type: 'string' web_search: - description: Price in USD per web search - type: string + description: 'Price in USD per web search' + type: 'string' required: - - prompt - - completion - type: object + - 'prompt' + - 'completion' + type: 'object' provider_name: $ref: '#/components/schemas/ProviderName' quantization: - allOf: + anyOf: - $ref: '#/components/schemas/Quantization' - - nullable: true + - type: 'null' status: $ref: '#/components/schemas/EndpointStatus' supported_parameters: items: $ref: '#/components/schemas/Parameter' - type: array + type: 'array' supports_implicit_caching: - type: boolean + type: 'boolean' tag: - type: string + type: 'string' throughput_last_30m: allOf: - $ref: '#/components/schemas/PercentileStats' - - description: >- - Throughput percentiles in tokens per second over the last 30 minutes. Throughput measures output token generation speed. Only visible when authenticated with an API key or cookie; returns null for unauthenticated requests. + - description: 'Throughput percentiles in tokens per second over the last 30 minutes. Throughput measures output token generation speed. Only visible when authenticated with an API key or cookie; returns null for unauthenticated requests.' uptime_last_1d: - description: >- - Uptime percentage over the last 1 day, calculated as successful requests / (successful + error requests) * 100. Rate-limited requests are excluded. Returns null if insufficient data. - format: double - nullable: true - type: number + description: 'Uptime percentage over the last 1 day, calculated as successful requests / (successful + error requests) * 100. Rate-limited requests are excluded. Returns null if insufficient data.' + format: 'double' + type: + - 'number' + - 'null' uptime_last_30m: - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' uptime_last_5m: - description: >- - Uptime percentage over the last 5 minutes, calculated as successful requests / (successful + error requests) * 100. Rate-limited requests are excluded. Returns null if insufficient data. - format: double - nullable: true - type: number - required: - - name - - model_id - - model_name - - context_length - - pricing - - provider_name - - tag - - quantization - - max_completion_tokens - - max_prompt_tokens - - supported_parameters - - uptime_last_30m - - uptime_last_5m - - uptime_last_1d - - supports_implicit_caching - - latency_last_30m - - throughput_last_30m - type: object + description: 'Uptime percentage over the last 5 minutes, calculated as successful requests / (successful + error requests) * 100. Rate-limited requests are excluded. Returns null if insufficient data.' + format: 'double' + type: + - 'number' + - 'null' + required: + - 'name' + - 'model_id' + - 'model_name' + - 'context_length' + - 'pricing' + - 'provider_name' + - 'tag' + - 'quantization' + - 'max_completion_tokens' + - 'max_prompt_tokens' + - 'supported_parameters' + - 'uptime_last_30m' + - 'uptime_last_5m' + - 'uptime_last_1d' + - 'supports_implicit_caching' + - 'latency_last_30m' + - 'throughput_last_30m' + type: 'object' PublicPricing: - description: Pricing information for the model + description: 'Pricing information for the model' example: completion: '0.00006' image: '0' @@ -19667,343 +19756,344 @@ components: request: '0' properties: audio: - description: Price in USD per audio input token - type: string + description: 'Price in USD per audio input token' + type: 'string' audio_output: - description: Price in USD per audio output token - type: string + description: 'Price in USD per audio output token' + type: 'string' completion: - description: Price in USD per token for completion (output) generation - type: string + description: 'Price in USD per token for completion (output) generation' + type: 'string' discount: - description: >- - Fractional discount applied to this endpoint's pricing; the price is multiplied by (1 - discount) (0 = no discount, 1 = free) - format: double - type: number + description: 'Fractional discount applied to this endpoint''s pricing; the price is multiplied by (1 - discount) (0 = no discount, 1 = free)' + format: 'double' + type: 'number' image: - description: Price in USD per input image - type: string + description: 'Price in USD per input image' + type: 'string' image_output: - description: Price in USD per output image - type: string + description: 'Price in USD per output image' + type: 'string' image_token: - description: Price in USD per image token - type: string + description: 'Price in USD per image token' + type: 'string' input_audio_cache: - description: Price in USD per cached audio input token - type: string + description: 'Price in USD per cached audio input token' + type: 'string' input_cache_read: - description: Price in USD per cached input token (read) - type: string + description: 'Price in USD per cached input token (read)' + type: 'string' input_cache_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 + 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 + 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' internal_reasoning: - description: Price in USD per internal reasoning token - type: string + description: 'Price in USD per internal reasoning token' + type: 'string' overrides: - description: >- - Conditional overrides of the base pricing (e.g. long-context or time-based pricing). An entry applies when all of its condition fields (e.g. min_prompt_tokens, or the utc_start/utc_end time window) match the request; among applicable entries, later entries win per key; price keys absent from an entry inherit the base price. The top-level pricing keys always reflect the price that applies under default conditions. + description: 'Conditional overrides of the base pricing (e.g. long-context or time-based pricing). An entry applies when all of its condition fields (e.g. min_prompt_tokens, or the utc_start/utc_end time window) match the request; among applicable entries, later entries win per key; price keys absent from an entry inherit the base price. The top-level pricing keys always reflect the price that applies under default conditions.' items: $ref: '#/components/schemas/PricingOverride' - type: array + type: 'array' prompt: - description: Price in USD per token for prompt (input) processing - type: string + description: 'Price in USD per token for prompt (input) processing' + type: 'string' request: - description: Price in USD per request - type: string + description: 'Price in USD per request' + type: 'string' web_search: - description: Price in USD per web search - type: string + description: 'Price in USD per web search' + type: 'string' required: - - prompt - - completion - type: object + - 'prompt' + - 'completion' + type: 'object' Quantization: enum: - - int4 - - int8 - - fp4 - - fp6 - - fp8 - - fp16 - - bf16 - - fp32 - - unknown - example: fp16 - type: string + - 'int4' + - 'int8' + - 'fp4' + - 'fp6' + - 'fp8' + - 'fp16' + - 'bf16' + - 'fp32' + - 'unknown' + example: 'fp16' + type: 'string' x-speakeasy-unknown-values: allow RangeCapability: - description: A parameter that accepts any value within an inclusive numeric range. + description: 'A parameter that accepts any value within an inclusive numeric range.' example: max: 100 min: 0 - type: range + type: 'range' properties: max: - type: number + type: 'number' min: - type: number + type: 'number' type: enum: - - range - type: string + - 'range' + type: 'string' required: - - type - - min - - max - type: object + - 'type' + - 'min' + - 'max' + type: 'object' RankingsDailyItem: example: date: '2026-05-11' - model_permaslug: openai/gpt-4o-2024-05-13 + model_permaslug: 'openai/gpt-4o-2024-05-13' total_tokens: '12345678' properties: date: - description: UTC calendar date the row is aggregated over (YYYY-MM-DD). + description: 'UTC calendar date the row is aggregated over (YYYY-MM-DD).' example: '2026-05-11' - type: string + type: 'string' model_permaslug: - description: >- - Model variant permaslug (e.g. `openai/gpt-4o-2024-05-13`, `openai/gpt-4o-2024-05-13:free`). Non-default variants include a `:variant` suffix and are ranked as their own entry. The reserved value `other` denotes the aggregated row covering every model outside the daily top 50 for that date — always sorted last within its date. - example: openai/gpt-4o-2024-05-13 - type: string + description: 'Model variant permaslug (e.g. `openai/gpt-4o-2024-05-13`, `openai/gpt-4o-2024-05-13:free`). Non-default variants include a `:variant` suffix and are ranked as their own entry. The reserved value `other` denotes the aggregated row covering every model outside the daily top 50 for that date — always sorted last within its date.' + example: 'openai/gpt-4o-2024-05-13' + type: 'string' total_tokens: - description: >- - Sum of `prompt_tokens + completion_tokens` for the day, returned as a decimal string so 64-bit values are not truncated. + description: 'Sum of `prompt_tokens + completion_tokens` for the day, returned as a decimal string so 64-bit values are not truncated.' example: '12345678' - type: string + type: 'string' required: - - date - - model_permaslug - - total_tokens - type: object + - 'date' + - 'model_permaslug' + - 'total_tokens' + type: 'object' RankingsDailyMeta: example: as_of: '2026-05-12T02:00:00Z' end_date: '2026-05-11' start_date: '2026-04-12' - version: v1 + 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. + 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:00Z' - type: string + type: 'string' end_date: - description: Resolved end of the date window (UTC, inclusive). + description: 'Resolved end of the date window (UTC, inclusive).' example: '2026-05-11' - type: string + type: 'string' start_date: - description: Resolved start of the date window (UTC, inclusive). + description: 'Resolved start of the date window (UTC, inclusive).' example: '2026-04-12' - type: string + type: 'string' version: - description: Dataset version. Field names and grain are stable for the life of `v1`. + description: 'Dataset version. Field names and grain are stable for the life of `v1`.' enum: - - v1 - type: string + - 'v1' + type: 'string' required: - - as_of - - version - - start_date - - end_date - type: object + - 'as_of' + - 'version' + - 'start_date' + - 'end_date' + type: 'object' RankingsDailyResponse: example: data: - date: '2026-05-11' - model_permaslug: openai/gpt-4o-2024-05-13 + model_permaslug: 'openai/gpt-4o-2024-05-13' total_tokens: '12345678' - date: '2026-05-11' - model_permaslug: anthropic/claude-3.5-sonnet-20241022 + model_permaslug: 'anthropic/claude-3.5-sonnet-20241022' total_tokens: '9876543' meta: as_of: '2026-05-12T02:00:00Z' end_date: '2026-05-11' start_date: '2026-04-12' - version: v1 + version: 'v1' properties: data: - description: >- - Up to 51 rows per day — the top 50 public models by `total_tokens` for each UTC calendar date in the window, plus one aggregated `other` row summing every model outside that top 50 (omitted when the long tail is empty). Rows are sorted by `date` ascending, then by `total_tokens` descending, with `other` pinned last within its date. Ties between real models break alphabetically on `model_permaslug` so the order is stable across requests. + description: 'Up to 51 rows per day — the top 50 public models by `total_tokens` for each UTC calendar date in the window, plus one aggregated `other` row summing every model outside that top 50 (omitted when the long tail is empty). Rows are sorted by `date` ascending, then by `total_tokens` descending, with `other` pinned last within its date. Ties between real models break alphabetically on `model_permaslug` so the order is stable across requests.' items: $ref: '#/components/schemas/RankingsDailyItem' - type: array + type: 'array' meta: $ref: '#/components/schemas/RankingsDailyMeta' required: - - data - - meta - type: object + - 'data' + - 'meta' + type: 'object' ReasoningConfig: - allOf: - - $ref: '#/components/schemas/BaseReasoningConfig' - - nullable: true - properties: - enabled: - nullable: true - type: boolean - max_tokens: - nullable: true - type: integer - type: object - description: Configuration for reasoning mode in the response + anyOf: + - allOf: + - $ref: '#/components/schemas/BaseReasoningConfig' + - properties: + enabled: + type: + - 'boolean' + - 'null' + max_tokens: + type: + - 'integer' + - 'null' + type: 'object' + - type: 'null' + description: 'Configuration for reasoning mode in the response' example: enabled: true - summary: auto + summary: 'auto' ReasoningContext: - description: >- - Controls which reasoning is available to the model. `auto` uses the model default (same as omitting); `all_turns` includes reasoning from earlier turns passed in input; `current_turn` limits to the current turn only. Only supported by OpenAI GPT-5.6 and newer. + description: 'Controls which reasoning is available to the model. `auto` uses the model default (same as omitting); `all_turns` includes reasoning from earlier turns passed in input; `current_turn` limits to the current turn only. Only supported by OpenAI GPT-5.6 and newer.' enum: - - auto - - all_turns - - current_turn + - 'auto' + - 'all_turns' + - 'current_turn' - null - example: all_turns - nullable: true - type: string + example: 'all_turns' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow ReasoningDeltaEvent: allOf: - $ref: '#/components/schemas/BaseReasoningDeltaEvent' - properties: {} - type: object - description: Event emitted when reasoning text delta is streamed + type: 'object' + description: 'Event emitted when reasoning text delta is streamed' example: content_index: 0 - delta: First, we need - item_id: item-1 + delta: 'First, we need' + item_id: 'item-1' output_index: 0 sequence_number: 4 - type: response.reasoning_text.delta + type: 'response.reasoning_text.delta' ReasoningDetailEncrypted: - description: Reasoning detail encrypted schema + description: 'Reasoning detail encrypted schema' example: - data: encrypted data - type: reasoning.encrypted + data: 'encrypted data' + type: 'reasoning.encrypted' properties: data: - type: string + type: 'string' format: $ref: '#/components/schemas/ReasoningFormat' id: - nullable: true - type: string + type: + - 'string' + - 'null' index: - type: integer + type: 'integer' type: enum: - - reasoning.encrypted - type: string + - 'reasoning.encrypted' + type: 'string' required: - - type - - data - type: object + - 'type' + - 'data' + type: 'object' ReasoningDetailServerToolCall: - description: >- - Record of an OpenRouter server-tool invocation (e.g. openrouter:fusion), carried in reasoning_details so a prior tool call can be rehydrated into a later turn of the same conversation. + description: 'Record of an OpenRouter server-tool invocation (e.g. openrouter:fusion), carried in reasoning_details so a prior tool call can be rehydrated into a later turn of the same conversation.' example: arguments: '{"prompt":"Compare carbon tax proposals"}' result: '{"status":"ok","models":["openai/gpt-4o"]}' - tool_call_id: call_abc123 - tool_name: openrouter:fusion - type: reasoning.server_tool_call + tool_call_id: 'call_abc123' + tool_name: 'openrouter:fusion' + type: 'reasoning.server_tool_call' properties: arguments: - type: string + type: 'string' format: $ref: '#/components/schemas/ReasoningFormat' id: - nullable: true - type: string + type: + - 'string' + - 'null' index: - type: integer + type: 'integer' result: - type: string + type: 'string' tool_call_id: - nullable: true - type: string + type: + - 'string' + - 'null' tool_name: - type: string + type: 'string' type: enum: - - reasoning.server_tool_call - type: string + - 'reasoning.server_tool_call' + type: 'string' required: - - type - - tool_name - - arguments - - result - type: object + - 'type' + - 'tool_name' + - 'arguments' + - 'result' + type: 'object' ReasoningDetailSummary: - description: Reasoning detail summary schema + description: 'Reasoning detail summary schema' example: - summary: The model analyzed the problem by first identifying key constraints, then evaluating possible solutions... - type: reasoning.summary + summary: 'The model analyzed the problem by first identifying key constraints, then evaluating possible solutions...' + type: 'reasoning.summary' properties: format: $ref: '#/components/schemas/ReasoningFormat' id: - nullable: true - type: string + type: + - 'string' + - 'null' index: - type: integer + type: 'integer' summary: - type: string + type: 'string' type: enum: - - reasoning.summary - type: string + - 'reasoning.summary' + type: 'string' required: - - type - - summary - type: object + - 'type' + - 'summary' + type: 'object' ReasoningDetailText: - description: Reasoning detail text schema + description: 'Reasoning detail text schema' example: - signature: signature - text: The model analyzed the problem by first identifying key constraints, then evaluating possible solutions... - type: reasoning.text + signature: 'signature' + text: 'The model analyzed the problem by first identifying key constraints, then evaluating possible solutions...' + type: 'reasoning.text' properties: format: $ref: '#/components/schemas/ReasoningFormat' id: - nullable: true - type: string + type: + - 'string' + - 'null' index: - type: integer + type: 'integer' signature: - nullable: true - type: string + type: + - 'string' + - 'null' text: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - reasoning.text - type: string + - 'reasoning.text' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' ReasoningDetailUnion: - description: Reasoning detail union schema + description: 'Reasoning detail union schema' discriminator: mapping: reasoning.encrypted: '#/components/schemas/ReasoningDetailEncrypted' reasoning.server_tool_call: '#/components/schemas/ReasoningDetailServerToolCall' reasoning.summary: '#/components/schemas/ReasoningDetailSummary' reasoning.text: '#/components/schemas/ReasoningDetailText' - propertyName: type + propertyName: 'type' example: - summary: The model analyzed the problem by first identifying key constraints, then evaluating possible solutions... - type: reasoning.summary + summary: 'The model analyzed the problem by first identifying key constraints, then evaluating possible solutions...' + type: 'reasoning.summary' oneOf: - $ref: '#/components/schemas/ReasoningDetailSummary' - $ref: '#/components/schemas/ReasoningDetailEncrypted' @@ -20013,42 +20103,44 @@ components: allOf: - $ref: '#/components/schemas/BaseReasoningDoneEvent' - properties: {} - type: object - description: Event emitted when reasoning text streaming is complete + type: 'object' + description: 'Event emitted when reasoning text streaming is complete' example: content_index: 0 - item_id: item-1 + item_id: 'item-1' output_index: 0 sequence_number: 6 - text: First, we need to identify the key components and then combine them logically. - type: response.reasoning_text.done + text: 'First, we need to identify the key components and then combine them logically.' + type: 'response.reasoning_text.done' ReasoningEffort: enum: - - max - - xhigh - - high - - medium - - low - - minimal - - none + - 'max' + - 'xhigh' + - 'high' + - 'medium' + - 'low' + - 'minimal' + - 'none' - null - example: medium - nullable: true - type: string + example: 'medium' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow ReasoningFormat: enum: - - unknown - - openai-responses-v1 - - azure-openai-responses-v1 - - xai-responses-v1 - - meta-responses-v1 - - anthropic-claude-v1 - - google-gemini-v1 + - 'unknown' + - 'openai-responses-v1' + - 'azure-openai-responses-v1' + - 'xai-responses-v1' + - 'meta-responses-v1' + - 'anthropic-claude-v1' + - 'google-gemini-v1' - null - example: unknown - nullable: true - type: string + example: 'unknown' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow ReasoningItem: allOf: @@ -20057,397 +20149,409 @@ components: content: items: $ref: '#/components/schemas/ReasoningTextContent' - nullable: true - type: array + type: + - 'array' + - 'null' format: $ref: '#/components/schemas/ReasoningFormat' signature: - nullable: true - type: string - type: object - description: Reasoning output item with signature and format extensions + type: + - 'string' + - 'null' + type: 'object' + description: 'Reasoning output item with signature and format extensions' example: - id: reasoning-abc123 + id: 'reasoning-abc123' summary: - - text: Step by step analysis - type: summary_text - type: reasoning + - text: 'Step by step analysis' + type: 'summary_text' + type: 'reasoning' ReasoningMode: - description: >- - Selects the reasoning mode. `standard` is the default; `pro` engages deeper reasoning on models that support it, billed at standard token rates. Only supported by OpenAI GPT-5.6 and newer. + description: 'Selects the reasoning mode. `standard` is the default; `pro` engages deeper reasoning on models that support it, billed at standard token rates. Only supported by OpenAI GPT-5.6 and newer.' enum: - - standard - - pro + - 'standard' + - 'pro' - null - example: standard - nullable: true - type: string + example: 'standard' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow ReasoningSummaryPartAddedEvent: allOf: - $ref: '#/components/schemas/BaseReasoningSummaryPartAddedEvent' - properties: {} - type: object - description: Event emitted when a reasoning summary part is added + type: 'object' + description: 'Event emitted when a reasoning summary part is added' example: - item_id: item-1 + item_id: 'item-1' output_index: 0 part: text: '' - type: summary_text + type: 'summary_text' sequence_number: 3 summary_index: 0 - type: response.reasoning_summary_part.added + type: 'response.reasoning_summary_part.added' ReasoningSummaryPartDoneEvent: allOf: - $ref: '#/components/schemas/BaseReasoningSummaryPartDoneEvent' - properties: {} - type: object - description: Event emitted when a reasoning summary part is complete + type: 'object' + description: 'Event emitted when a reasoning summary part is complete' example: - item_id: item-1 + item_id: 'item-1' output_index: 0 part: - text: Analyzing the problem step by step to find the optimal solution. - type: summary_text + text: 'Analyzing the problem step by step to find the optimal solution.' + type: 'summary_text' sequence_number: 7 summary_index: 0 - type: response.reasoning_summary_part.done + type: 'response.reasoning_summary_part.done' ReasoningSummaryText: example: - text: Analyzed the problem using first principles - type: summary_text + text: 'Analyzed the problem using first principles' + type: 'summary_text' properties: text: - type: string + type: 'string' type: enum: - - summary_text - type: string + - 'summary_text' + type: 'string' required: - - type - - text - type: object + - 'type' + - 'text' + type: 'object' ReasoningSummaryTextDeltaEvent: allOf: - $ref: '#/components/schemas/BaseReasoningSummaryTextDeltaEvent' - properties: {} - type: object - description: Event emitted when reasoning summary text delta is streamed + type: 'object' + description: 'Event emitted when reasoning summary text delta is streamed' example: - delta: Analyzing - item_id: item-1 + delta: 'Analyzing' + item_id: 'item-1' output_index: 0 sequence_number: 4 summary_index: 0 - type: response.reasoning_summary_text.delta + type: 'response.reasoning_summary_text.delta' ReasoningSummaryTextDoneEvent: allOf: - $ref: '#/components/schemas/BaseReasoningSummaryTextDoneEvent' - properties: {} - type: object - description: Event emitted when reasoning summary text streaming is complete + type: 'object' + description: 'Event emitted when reasoning summary text streaming is complete' example: - item_id: item-1 + item_id: 'item-1' output_index: 0 sequence_number: 6 summary_index: 0 - text: Analyzing the problem step by step to find the optimal solution. - type: response.reasoning_summary_text.done + text: 'Analyzing the problem step by step to find the optimal solution.' + type: 'response.reasoning_summary_text.done' ReasoningSummaryVerbosity: enum: - - auto - - concise - - detailed + - 'auto' + - 'concise' + - 'detailed' - null - example: auto - nullable: true - type: string + example: 'auto' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow ReasoningTextContent: example: - text: Let me think step by step about this problem... - type: reasoning_text + text: 'Let me think step by step about this problem...' + type: 'reasoning_text' properties: text: - type: string + type: 'string' type: enum: - - reasoning_text - type: string + - 'reasoning_text' + type: 'string' required: - - type - - text - type: object + - 'type' + - 'text' + type: 'object' RefusalDeltaEvent: allOf: - $ref: '#/components/schemas/BaseRefusalDeltaEvent' - properties: {} - type: object - description: Event emitted when a refusal delta is streamed + type: 'object' + description: 'Event emitted when a refusal delta is streamed' example: content_index: 0 - delta: I'm sorry - item_id: item-1 + delta: 'I''m sorry' + item_id: 'item-1' output_index: 0 sequence_number: 4 - type: response.refusal.delta + type: 'response.refusal.delta' RefusalDoneEvent: allOf: - $ref: '#/components/schemas/BaseRefusalDoneEvent' - properties: {} - type: object - description: Event emitted when refusal streaming is complete + type: 'object' + description: 'Event emitted when refusal streaming is complete' example: content_index: 0 - item_id: item-1 + item_id: 'item-1' output_index: 0 - refusal: I'm sorry, but I can't assist with that request. + refusal: 'I''m sorry, but I can''t assist with that request.' sequence_number: 6 - type: response.refusal.done + type: 'response.refusal.done' RequestMetadata: additionalProperties: maxLength: 512 - type: string - description: >- - Metadata key-value pairs for the request. Keys must be ≤64 characters and cannot contain brackets. Values must be ≤512 characters. Maximum 16 pairs allowed. + type: 'string' + description: 'Metadata key-value pairs for the request. Keys must be ≤64 characters and cannot contain brackets. Values must be ≤512 characters. Maximum 16 pairs allowed.' example: - session_id: abc-def-ghi + session_id: 'abc-def-ghi' user_id: '123' - nullable: true - type: object + type: + - 'object' + - 'null' RequestTimeoutResponse: - description: Request Timeout - Operation exceeded time limit + description: 'Request Timeout - Operation exceeded time limit' example: error: code: 408 - message: Operation timed out. Please try again later. + message: 'Operation timed out. Please try again later.' properties: error: $ref: '#/components/schemas/RequestTimeoutResponseErrorData' openrouter_metadata: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' user_id: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - error - type: object + - 'error' + type: 'object' RequestTimeoutResponseErrorData: - description: Error data for RequestTimeoutResponse + description: 'Error data for RequestTimeoutResponse' example: code: 408 - message: Operation timed out. Please try again later. + message: 'Operation timed out. Please try again later.' properties: code: - type: integer + type: 'integer' message: - type: string + type: 'string' metadata: - additionalProperties: - nullable: true - nullable: true - type: object - required: - - code - - message - type: object + additionalProperties: {} + type: + - 'object' + - 'null' + required: + - 'code' + - 'message' + type: 'object' ResponseHealingPlugin: example: enabled: true - id: response-healing + id: 'response-healing' properties: enabled: - description: Set to false to disable the response-healing plugin for this request. Defaults to true. - type: boolean + description: 'Set to false to disable the response-healing plugin for this request. Defaults to true.' + type: 'boolean' id: enum: - - response-healing - type: string + - 'response-healing' + type: 'string' required: - - id - type: object + - 'id' + type: 'object' ResponseIncludesEnum: enum: - - file_search_call.results - - message.input_image.image_url - - computer_call_output.output.image_url - - reasoning.encrypted_content - - code_interpreter_call.outputs - example: file_search_call.results - type: string + - 'file_search_call.results' + - 'message.input_image.image_url' + - 'computer_call_output.output.image_url' + - 'reasoning.encrypted_content' + - 'code_interpreter_call.outputs' + example: 'file_search_call.results' + type: 'string' x-speakeasy-unknown-values: allow ResponseOutputText: example: annotations: - end_index: 42 start_index: 0 - title: Paris - Wikipedia - type: url_citation - url: https://en.wikipedia.org/wiki/Paris - text: The capital of France is Paris. - type: output_text + title: 'Paris - Wikipedia' + type: 'url_citation' + url: 'https://en.wikipedia.org/wiki/Paris' + text: 'The capital of France is Paris.' + type: 'output_text' properties: annotations: items: $ref: '#/components/schemas/OpenAIResponsesAnnotation' - type: array + type: 'array' logprobs: items: properties: bytes: items: - type: integer - type: array + type: 'integer' + type: 'array' logprob: - format: double - type: number + format: 'double' + type: 'number' token: - type: string + type: 'string' top_logprobs: items: properties: bytes: items: - type: integer - type: array + type: 'integer' + type: 'array' logprob: - format: double - type: number + format: 'double' + type: 'number' token: - type: string + type: 'string' required: - - token - - bytes - - logprob - type: object - type: array + - 'token' + - 'bytes' + - 'logprob' + type: 'object' + type: 'array' required: - - token - - bytes - - logprob - - top_logprobs - type: object - type: array + - 'token' + - 'bytes' + - 'logprob' + - 'top_logprobs' + type: 'object' + type: 'array' text: - type: string + type: 'string' type: enum: - - output_text - type: string + - 'output_text' + type: 'string' required: - - type - - text - type: object + - 'type' + - 'text' + type: 'object' ResponsesErrorField: - description: Error information returned from the API + description: 'Error information returned from the API' example: - code: rate_limit_exceeded - message: Rate limit exceeded. Please try again later. - nullable: true + code: 'rate_limit_exceeded' + message: 'Rate limit exceeded. Please try again later.' properties: code: enum: - - server_error - - rate_limit_exceeded - - invalid_prompt - - vector_store_timeout - - invalid_image - - invalid_image_format - - invalid_base64_image - - invalid_image_url - - image_too_large - - image_too_small - - image_parse_error - - image_content_policy_violation - - invalid_image_mode - - image_file_too_large - - unsupported_image_media_type - - empty_image_file - - failed_to_download_image - - image_file_not_found - - bio_policy - type: string + - 'server_error' + - 'rate_limit_exceeded' + - 'invalid_prompt' + - 'vector_store_timeout' + - 'invalid_image' + - 'invalid_image_format' + - 'invalid_base64_image' + - 'invalid_image_url' + - 'image_too_large' + - 'image_too_small' + - 'image_parse_error' + - 'image_content_policy_violation' + - 'invalid_image_mode' + - 'image_file_too_large' + - 'unsupported_image_media_type' + - 'empty_image_file' + - 'failed_to_download_image' + - 'image_file_not_found' + - 'bio_policy' + type: 'string' x-speakeasy-unknown-values: allow message: - type: string + type: 'string' required: - - code - - message - type: object + - 'code' + - 'message' + type: + - 'object' + - 'null' ResponsesRequest: - description: Request schema for Responses endpoint + description: 'Request schema for Responses endpoint' example: input: - - content: Hello, how are you? - role: user - type: message - model: anthropic/claude-4.5-sonnet-20250929 + - content: 'Hello, how are you?' + role: 'user' + type: 'message' + model: 'anthropic/claude-4.5-sonnet-20250929' temperature: 0.7 tools: - - description: Get the current weather in a given location - name: get_current_weather + - description: 'Get the current weather in a given location' + name: 'get_current_weather' parameters: properties: location: - type: string - type: object - type: function + type: 'string' + type: 'object' + type: 'function' top_p: 0.9 properties: background: - nullable: true - type: boolean + type: + - 'boolean' + - 'null' cache_control: $ref: '#/components/schemas/AnthropicCacheControlDirective' debug: $ref: '#/components/schemas/ChatDebugOptions' frequency_penalty: - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' image_config: $ref: '#/components/schemas/ImageConfig' include: items: $ref: '#/components/schemas/ResponseIncludesEnum' - nullable: true - type: array + type: + - 'array' + - 'null' input: $ref: '#/components/schemas/Inputs' instructions: - nullable: true - type: string + type: + - 'string' + - 'null' max_output_tokens: - nullable: true - type: integer + type: + - 'integer' + - 'null' max_tool_calls: - nullable: true - type: integer + type: + - 'integer' + - 'null' metadata: $ref: '#/components/schemas/RequestMetadata' modalities: - description: Output modalities for the response. Supported values are "text" and "image". + description: 'Output modalities for the response. Supported values are "text" and "image".' example: - - text - - image + - 'text' + - 'image' items: $ref: '#/components/schemas/OutputModalityEnum' - type: array + type: 'array' model: - type: string + type: 'string' models: items: - type: string - type: array + type: 'string' + type: 'array' parallel_tool_calls: - nullable: true - type: boolean + type: + - 'boolean' + - 'null' plugins: - description: Plugins you want to enable for this request, including their settings. + description: 'Plugins you want to enable for this request, including their settings.' items: discriminator: mapping: @@ -20460,7 +20564,7 @@ components: response-healing: '#/components/schemas/ResponseHealingPlugin' web: '#/components/schemas/WebSearchPlugin' web-fetch: '#/components/schemas/WebFetchPlugin' - propertyName: id + propertyName: 'id' oneOf: - $ref: '#/components/schemas/AutoRouterPlugin' - $ref: '#/components/schemas/ModerationPlugin' @@ -20471,20 +20575,20 @@ components: - $ref: '#/components/schemas/ContextCompressionPlugin' - $ref: '#/components/schemas/ParetoRouterPlugin' - $ref: '#/components/schemas/FusionPlugin' - type: array + type: 'array' presence_penalty: - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' previous_response_id: - description: >- - Not supported. The Responses API is stateless: no responses are stored, so a previous response cannot be referenced. Requests with a non-null value are rejected with a 400 error. Send the full conversation history in `input` instead. - nullable: true + description: 'Not supported. The Responses API is stateless: no responses are stored, so a previous response cannot be referenced. Requests with a non-null value are rejected with a 400 error. Send the full conversation history in `input` instead.' prompt: $ref: '#/components/schemas/StoredPromptTemplate' prompt_cache_key: - nullable: true - type: string + type: + - 'string' + - 'null' prompt_cache_options: $ref: '#/components/schemas/PromptCacheOptions' provider: @@ -20494,38 +20598,40 @@ components: route: $ref: '#/components/schemas/DeprecatedRoute' safety_identifier: - nullable: true - type: string + type: + - 'string' + - 'null' service_tier: - default: auto + default: 'auto' enum: - - auto - - default - - flex - - priority - - scale + - 'auto' + - 'default' + - 'flex' + - 'priority' + - 'scale' - null - nullable: true - type: string + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow session_id: - description: >- - A unique identifier for grouping related requests (e.g., a conversation or agent workflow). When provided, OpenRouter uses it as the sticky routing key, routing all requests in the session to the same provider to maximize prompt cache hits. Also used for observability grouping. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters. + description: 'A unique identifier for grouping related requests (e.g., a conversation or agent workflow). When provided, OpenRouter uses it as the sticky routing key, routing all requests in the session to the same provider to maximize prompt cache hits. Also used for observability grouping. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters.' maxLength: 256 - type: string + type: 'string' stop_server_tools_when: $ref: '#/components/schemas/StopServerToolsWhen' store: const: false default: false - type: boolean + type: 'boolean' stream: default: false - type: boolean + type: 'boolean' temperature: - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' text: $ref: '#/components/schemas/TextExtendedConfig' tool_choice: @@ -20536,26 +20642,26 @@ components: - allOf: - $ref: '#/components/schemas/FunctionTool' - properties: {} - type: object - description: Function tool definition + type: 'object' + description: 'Function tool definition' example: - description: Get the current weather in a location - name: get_weather + description: 'Get the current weather in a location' + name: 'get_weather' parameters: properties: location: - description: The city and state - type: string + description: 'The city and state' + type: 'string' unit: enum: - - celsius - - fahrenheit - type: string + - 'celsius' + - 'fahrenheit' + type: 'string' x-speakeasy-unknown-values: allow required: - - location - type: object - type: function + - 'location' + type: 'object' + type: 'function' - $ref: '#/components/schemas/Preview_WebSearchServerTool' - $ref: '#/components/schemas/Preview_20250311_WebSearchServerTool' - $ref: '#/components/schemas/Legacy_WebSearchServerTool' @@ -20582,349 +20688,359 @@ components: - $ref: '#/components/schemas/ApplyPatchServerTool_OpenRouter' - $ref: '#/components/schemas/BashServerTool' - $ref: '#/components/schemas/ShellServerTool_OpenRouter' - type: array + type: 'array' top_k: - type: integer + type: 'integer' top_logprobs: - nullable: true - type: integer + type: + - 'integer' + - 'null' top_p: - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' trace: $ref: '#/components/schemas/TraceConfig' truncation: $ref: '#/components/schemas/OpenAIResponsesTruncation' user: - description: >- - A unique identifier representing your end-user, which helps distinguish between different users of your app. This allows your app to identify specific users in case of abuse reports, preventing your entire app from being affected by the actions of individual users. Maximum of 256 characters. + description: 'A unique identifier representing your end-user, which helps distinguish between different users of your app. This allows your app to identify specific users in case of abuse reports, preventing your entire app from being affected by the actions of individual users. Maximum of 256 characters.' maxLength: 256 - type: string - type: object + type: 'string' + type: 'object' ResponsesStreamingResponse: example: data: - delta: Hello - type: response.output_text.delta + content_index: 0 + delta: 'Hello' + item_id: 'item-1' + logprobs: [] + output_index: 0 + sequence_number: 4 + type: 'response.output_text.delta' properties: data: $ref: '#/components/schemas/StreamEvents' required: - - data - type: object + - 'data' + type: 'object' RouterAttempt: example: - model: openai/gpt-4o - provider: OpenAI + model: 'openai/gpt-4o' + provider: 'OpenAI' status: 200 properties: model: - type: string + type: 'string' provider: - type: string + type: 'string' status: - type: integer + type: 'integer' required: - - provider - - model - - status - type: object + - 'provider' + - 'model' + - 'status' + type: 'object' RouterParams: - additionalProperties: - nullable: true + additionalProperties: {} example: - version_group: anthropic/claude-sonnet-4 + version_group: 'anthropic/claude-sonnet-4' properties: quality_floor: - format: double - type: number + format: 'double' + type: 'number' throughput_floor: - format: double - type: number + format: 'double' + type: 'number' version_group: - type: string - type: object + type: 'string' + type: 'object' RoutingStrategy: enum: - - direct - - auto - - free - - latest - - alias - - fallback - - pareto - - bodybuilder - - fusion - example: direct - type: string + - 'direct' + - 'auto' + - 'free' + - 'latest' + - 'alias' + - 'fallback' + - 'pareto' + - 'bodybuilder' + - 'fusion' + example: 'direct' + type: 'string' x-speakeasy-unknown-values: allow SandboxSleepAfterSeconds: - description: >- - How long (in seconds) the container stays warm after its last command before sleeping, freeing its capacity slot. Idle-based: each command renews the timer. Defaults to 900 (15 minutes); capped at 2592000 (30 days). + description: 'How long (in seconds) the container stays warm after its last command before sleeping, freeing its capacity slot. Idle-based: each command renews the timer. Defaults to 900 (15 minutes); capped at 2592000 (30 days).' example: 900 - type: integer + type: 'integer' SearchContextSizeEnum: - description: Size of the search context for web search tools + description: 'Size of the search context for web search tools' enum: - - low - - medium - - high - example: medium - type: string + - 'low' + - 'medium' + - 'high' + example: 'medium' + type: 'string' x-speakeasy-unknown-values: allow SearchModelsServerTool_OpenRouter: description: 'OpenRouter built-in server tool: searches and filters AI models available on OpenRouter' example: parameters: max_results: 5 - type: openrouter:experimental__search_models + type: 'openrouter:experimental__search_models' properties: parameters: $ref: '#/components/schemas/SearchModelsServerToolConfig' type: enum: - - openrouter:experimental__search_models - type: string + - 'openrouter:experimental__search_models' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' SearchModelsServerToolConfig: - description: Configuration for the openrouter:experimental__search_models server tool + description: 'Configuration for the openrouter:experimental__search_models server tool' example: max_results: 5 properties: max_results: - description: Maximum number of models to return. Defaults to 5, max 20. + description: 'Maximum number of models to return. Defaults to 5, max 20.' example: 5 - type: integer - type: object + type: 'integer' + type: 'object' SearchQualityLevel: - description: >- - How much context to retrieve per result. Applies to Exa, Parallel, and Perplexity engines; ignored with native provider search and Firecrawl. For Exa, pins a fixed per-result character cap (low=5,000, medium=15,000, high=30,000); when omitted, Exa picks an adaptive size per query and document (typically ~2,000–4,000 characters per result). For Parallel, controls the total characters across all results; when omitted, Parallel uses its own default size. For Perplexity, maps directly to the Search API's native search_context_size parameter. Overridden by `max_characters` when both are set. + description: 'How much context to retrieve per result. Applies to Exa, Parallel, and Perplexity engines; ignored with native provider search and Firecrawl. For Exa, pins a fixed per-result character cap (low=5,000, medium=15,000, high=30,000); when omitted, Exa picks an adaptive size per query and document (typically ~2,000–4,000 characters per result). For Parallel, controls the total characters across all results; when omitted, Parallel uses its own default size. For Perplexity, maps directly to the Search API''s native search_context_size parameter. Overridden by `max_characters` when both are set.' enum: - - low - - medium - - high - example: medium - type: string + - 'low' + - 'medium' + - 'high' + example: 'medium' + type: 'string' x-speakeasy-unknown-values: allow ServerToolUseDetails: - description: Usage for server-side tool execution (e.g., web search) + description: 'Usage for server-side tool execution (e.g., web search)' example: tool_calls_executed: 2 tool_calls_requested: 2 web_search_requests: 2 - nullable: true properties: tool_calls_executed: - description: Number of OpenRouter server tool calls that executed and produced a result. - nullable: true - type: integer + description: 'Number of OpenRouter server tool calls that executed and produced a result.' + type: + - 'integer' + - 'null' tool_calls_requested: - description: >- - Total number of OpenRouter server-orchestrated tool calls the model requested, across all tool types. Provider-native tools (e.g. native web search) are not counted here. - nullable: true - type: integer + description: 'Total number of OpenRouter server-orchestrated tool calls the model requested, across all tool types. Provider-native tools (e.g. native web search) are not counted here.' + type: + - 'integer' + - 'null' web_search_requests: - description: >- - Number of web searches performed by server-side tools. For server-orchestrated tool calls a web search is also counted in tool_calls_requested; provider-native web search may report web_search_requests only. Do not sum the two. - nullable: true - type: integer - type: object + description: 'Number of web searches performed by server-side tools. For server-orchestrated tool calls a web search is also counted in tool_calls_requested; provider-native web search may report web_search_requests only. Do not sum the two.' + type: + - 'integer' + - 'null' + type: + - 'object' + - 'null' ServiceTier: enum: - - auto - - default - - flex - - priority - - scale + - 'auto' + - 'default' + - 'flex' + - 'priority' + - 'scale' - null - example: default - nullable: true - type: string + example: 'default' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow ServiceUnavailableResponse: - description: Service Unavailable - Service temporarily unavailable + description: 'Service Unavailable - Service temporarily unavailable' example: error: code: 503 - message: Service temporarily unavailable + message: 'Service temporarily unavailable' properties: error: $ref: '#/components/schemas/ServiceUnavailableResponseErrorData' openrouter_metadata: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' user_id: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - error - type: object + - 'error' + type: 'object' ServiceUnavailableResponseErrorData: - description: Error data for ServiceUnavailableResponse + description: 'Error data for ServiceUnavailableResponse' example: code: 503 - message: Service temporarily unavailable + message: 'Service temporarily unavailable' properties: code: - type: integer + type: 'integer' message: - type: string + type: 'string' metadata: - additionalProperties: - nullable: true - nullable: true - type: object - required: - - code - - message - type: object + additionalProperties: {} + type: + - 'object' + - 'null' + required: + - 'code' + - 'message' + type: 'object' ShellCallItem: - description: A shell command execution call (newer variant) + description: 'A shell command execution call (newer variant)' example: action: commands: - - ls + - 'ls' - '-la' max_output_length: 10000 - call_id: call-abc123 - status: completed - type: shell_call + call_id: 'call-abc123' + status: 'completed' + type: 'shell_call' properties: action: properties: commands: items: - type: string - type: array + type: 'string' + type: 'array' max_output_length: - nullable: true - type: integer + type: + - 'integer' + - 'null' timeout_ms: - nullable: true - type: integer + type: + - 'integer' + - 'null' required: - - commands - type: object + - 'commands' + type: 'object' call_id: - type: string - environment: - nullable: true + type: 'string' + environment: {} id: - nullable: true - type: string + type: + - 'string' + - 'null' status: - allOf: + anyOf: - $ref: '#/components/schemas/ToolCallStatus' - - nullable: true + - type: 'null' type: enum: - - shell_call - type: string + - 'shell_call' + type: 'string' required: - - type - - call_id - - action - type: object + - 'type' + - 'call_id' + - 'action' + type: 'object' ShellCallOutputItem: - description: Output from a shell command execution (newer variant) + description: 'Output from a shell command execution (newer variant)' example: - call_id: call-abc123 + call_id: 'call-abc123' output: - - content: | - total 0 - type: stdout - status: completed - type: shell_call_output + - content: "total 0\n" + type: 'stdout' + status: 'completed' + type: 'shell_call_output' properties: call_id: - type: string + type: 'string' id: - nullable: true - type: string + type: + - 'string' + - 'null' max_output_length: - nullable: true - type: integer + type: + - 'integer' + - 'null' output: items: - additionalProperties: - nullable: true + additionalProperties: {} properties: content: - nullable: true - type: string + type: + - 'string' + - 'null' exit_code: - nullable: true - type: integer + type: + - 'integer' + - 'null' type: - type: string + type: 'string' required: - - type - type: object - type: array + - 'type' + type: 'object' + type: 'array' status: - allOf: + anyOf: - $ref: '#/components/schemas/ToolCallStatus' - - nullable: true + - type: 'null' type: enum: - - shell_call_output - type: string + - 'shell_call_output' + type: 'string' required: - - type - - call_id - - output - type: object + - 'type' + - 'call_id' + - 'output' + type: 'object' ShellCallStatus: - description: Status of a shell call or its output. + description: 'Status of a shell call or its output.' enum: - - in_progress - - completed - - incomplete - example: completed - type: string + - 'in_progress' + - 'completed' + - 'incomplete' + example: 'completed' + type: 'string' x-speakeasy-unknown-values: allow ShellServerTool: - description: Shell tool configuration + description: 'Shell tool configuration' example: - type: shell + type: 'shell' properties: type: enum: - - shell - type: string + - 'shell' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' ShellServerTool_OpenRouter: - description: >- - OpenRouter built-in server tool: runs shell commands server-side in a sandboxed container (a sandbox-backed clone of OpenAI's hosted shell tool) + description: 'OpenRouter built-in server tool: runs shell commands server-side in a sandboxed container (a sandbox-backed clone of OpenAI''s hosted shell tool)' example: parameters: - engine: openrouter + engine: 'openrouter' environment: - type: container_auto - type: openrouter:shell + type: 'container_auto' + type: 'openrouter:shell' properties: parameters: $ref: '#/components/schemas/ShellServerToolConfig' type: enum: - - openrouter:shell - type: string + - 'openrouter:shell' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' ShellServerToolConfig: - description: Configuration for the openrouter:shell server tool + description: 'Configuration for the openrouter:shell server tool' example: - engine: openrouter + engine: 'openrouter' environment: - type: container_auto + type: 'container_auto' properties: engine: $ref: '#/components/schemas/ShellServerToolEngine' @@ -20932,90 +21048,86 @@ components: $ref: '#/components/schemas/ShellServerToolEnvironment' sleep_after_seconds: $ref: '#/components/schemas/SandboxSleepAfterSeconds' - type: object + type: 'object' ShellServerToolEngine: - description: >- - Which shell engine to use. "openrouter" runs commands server-side in the OpenRouter sandbox. "auto" (default) keeps the provider's native hosted shell when available (OpenAI); on other providers the call is routed to the OpenRouter sandbox. + description: 'Which shell engine to use. "openrouter" runs commands server-side in the OpenRouter sandbox. "auto" (default) keeps the provider''s native hosted shell when available (OpenAI); on other providers the call is routed to the OpenRouter sandbox.' enum: - - auto - - openrouter - example: openrouter - type: string + - 'auto' + - 'openrouter' + example: 'openrouter' + type: 'string' x-speakeasy-unknown-values: allow ShellServerToolEnvironment: - description: >- - Server-side execution environment for the shell tool. Only container-backed environments are supported; "local" shells are not. + description: 'Server-side execution environment for the shell tool. Only container-backed environments are supported; "local" shells are not.' discriminator: mapping: container_auto: '#/components/schemas/ContainerAutoEnvironment' container_reference: '#/components/schemas/ContainerReferenceEnvironment' - propertyName: type + propertyName: 'type' example: - type: container_auto + type: 'container_auto' oneOf: - $ref: '#/components/schemas/ContainerAutoEnvironment' - $ref: '#/components/schemas/ContainerReferenceEnvironment' SpeechRequest: - description: Text-to-speech request input + description: 'Text-to-speech request input' example: - input: Hello world - model: mistralai/voxtral-mini-tts-2603 - response_format: pcm + input: 'Hello world' + model: 'mistralai/voxtral-mini-tts-2603' + response_format: 'pcm' speed: 1 - voice: en_paul_neutral + voice: 'en_paul_neutral' properties: input: - description: Text to synthesize - example: Hello world - type: string + description: 'Text to synthesize' + example: 'Hello world' + type: 'string' model: - description: TTS model identifier - example: mistralai/voxtral-mini-tts-2603 - type: string + description: 'TTS model identifier' + example: 'mistralai/voxtral-mini-tts-2603' + type: 'string' provider: - description: Provider-specific passthrough configuration + description: 'Provider-specific passthrough configuration' properties: options: $ref: '#/components/schemas/ProviderOptions' - type: object + type: 'object' response_format: - default: pcm - description: Audio output format + default: 'pcm' + description: 'Audio output format' enum: - - mp3 - - pcm - example: pcm - type: string + - 'mp3' + - 'pcm' + example: 'pcm' + type: 'string' x-speakeasy-unknown-values: allow speed: - description: >- - Playback speed multiplier. Only used by models that support it (e.g. OpenAI TTS). Ignored by other providers. + description: 'Playback speed multiplier. Only used by models that support it (e.g. OpenAI TTS). Ignored by other providers.' example: 1 - format: double - type: number + format: 'double' + type: 'number' voice: - description: Voice identifier (provider-specific). - example: en_paul_neutral - type: string - required: - - model - - input - - voice - type: object + description: 'Voice identifier (provider-specific).' + example: 'en_paul_neutral' + type: 'string' + required: + - 'model' + - 'input' + - 'voice' + type: 'object' StopServerToolsWhen: - description: >- - Stop conditions for the server-tool agent loop. Any condition firing halts the loop (OR logic). When set, this overrides `max_tool_calls`. + description: 'Stop conditions for the server-tool agent loop. Any condition firing halts the loop (OR logic). When set, this overrides `max_tool_calls`.' example: - step_count: 5 - type: step_count_is + type: 'step_count_is' - max_cost_in_dollars: 0.5 - type: max_cost + type: 'max_cost' items: $ref: '#/components/schemas/StopServerToolsWhenCondition' minItems: 1 - type: array + type: 'array' StopServerToolsWhenCondition: - description: A single condition that, when met, halts the server-tool agent loop. + description: 'A single condition that, when met, halts the server-tool agent loop.' discriminator: mapping: finish_reason_is: '#/components/schemas/StopServerToolsWhenFinishReasonIs' @@ -21023,10 +21135,10 @@ components: max_cost: '#/components/schemas/StopServerToolsWhenMaxCost' max_tokens_used: '#/components/schemas/StopServerToolsWhenMaxTokensUsed' step_count_is: '#/components/schemas/StopServerToolsWhenStepCountIs' - propertyName: type + propertyName: 'type' example: step_count: 5 - type: step_count_is + type: 'step_count_is' oneOf: - $ref: '#/components/schemas/StopServerToolsWhenStepCountIs' - $ref: '#/components/schemas/StopServerToolsWhenHasToolCall' @@ -21034,111 +21146,113 @@ components: - $ref: '#/components/schemas/StopServerToolsWhenMaxCost' - $ref: '#/components/schemas/StopServerToolsWhenFinishReasonIs' StopServerToolsWhenFinishReasonIs: - description: Stop when the upstream model emits this finish reason (e.g. `length`). + description: 'Stop when the upstream model emits this finish reason (e.g. `length`).' example: - reason: length - type: finish_reason_is + reason: 'length' + type: 'finish_reason_is' properties: reason: minLength: 1 - type: string + type: 'string' type: enum: - - finish_reason_is - type: string + - 'finish_reason_is' + type: 'string' required: - - type - - reason - type: object + - 'type' + - 'reason' + type: 'object' StopServerToolsWhenHasToolCall: - description: Stop after a tool with this name has been called. + description: 'Stop after a tool with this name has been called.' example: - tool_name: finalize - type: has_tool_call + tool_name: 'finalize' + type: 'has_tool_call' properties: tool_name: minLength: 1 - type: string + type: 'string' type: enum: - - has_tool_call - type: string + - 'has_tool_call' + type: 'string' required: - - type - - tool_name - type: object + - 'type' + - 'tool_name' + type: 'object' StopServerToolsWhenMaxCost: - description: Stop once cumulative cost across the loop exceeds this dollar threshold. + description: 'Stop once cumulative cost across the loop exceeds this dollar threshold.' example: max_cost_in_dollars: 0.5 - type: max_cost + type: 'max_cost' properties: max_cost_in_dollars: - format: double - type: number + format: 'double' + type: 'number' type: enum: - - max_cost - type: string + - 'max_cost' + type: 'string' required: - - type - - max_cost_in_dollars - type: object + - 'type' + - 'max_cost_in_dollars' + type: 'object' StopServerToolsWhenMaxTokensUsed: - description: Stop once cumulative token usage across the loop exceeds this threshold. + description: 'Stop once cumulative token usage across the loop exceeds this threshold.' example: max_tokens: 10000 - type: max_tokens_used + type: 'max_tokens_used' properties: max_tokens: - type: integer + type: 'integer' type: enum: - - max_tokens_used - type: string + - 'max_tokens_used' + type: 'string' required: - - type - - max_tokens - type: object + - 'type' + - 'max_tokens' + type: 'object' StopServerToolsWhenStepCountIs: - description: Stop after the agent loop has executed this many steps. + description: 'Stop after the agent loop has executed this many steps.' example: step_count: 5 - type: step_count_is + type: 'step_count_is' properties: step_count: - type: integer + type: 'integer' type: enum: - - step_count_is - type: string + - 'step_count_is' + type: 'string' required: - - type - - step_count - type: object + - 'type' + - 'step_count' + type: 'object' StoredPromptTemplate: example: - id: prompt-abc123 + id: 'prompt-abc123' variables: - name: John - nullable: true + name: 'John' properties: id: - type: string + type: 'string' variables: additionalProperties: anyOf: - - type: string + - type: 'string' - $ref: '#/components/schemas/InputText' - $ref: '#/components/schemas/InputImage' - $ref: '#/components/schemas/InputFile' - nullable: true - type: object - required: - - id - type: object + type: + - 'object' + - 'null' + required: + - 'id' + type: + - 'object' + - 'null' StreamEvents: - description: Union of all possible event types emitted during response streaming + description: 'Union of all possible event types emitted during response streaming' discriminator: mapping: error: '#/components/schemas/ErrorEvent' @@ -21185,27 +21299,30 @@ components: response.web_search_call.completed: '#/components/schemas/WebSearchCallCompletedEvent' response.web_search_call.in_progress: '#/components/schemas/WebSearchCallInProgressEvent' response.web_search_call.searching: '#/components/schemas/WebSearchCallSearchingEvent' - propertyName: type + propertyName: 'type' example: response: + completed_at: null created_at: 1704067200 error: null - id: resp-abc123 + frequency_penalty: null + id: 'resp-abc123' incomplete_details: null instructions: null max_output_tokens: null metadata: null - model: gpt-4 - object: response + model: 'gpt-4' + object: 'response' output: [] parallel_tool_calls: true - status: in_progress + presence_penalty: null + status: 'in_progress' temperature: null - tool_choice: auto + tool_choice: 'auto' tools: [] top_p: null sequence_number: 0 - type: response.created + type: 'response.created' oneOf: - $ref: '#/components/schemas/OpenResponsesCreatedEvent' - $ref: '#/components/schemas/OpenResponsesInProgressEvent' @@ -21257,123 +21374,132 @@ components: - properties: response: $ref: '#/components/schemas/OpenResponsesResult' - type: object - description: Event emitted when a response has completed successfully + type: 'object' + description: 'Event emitted when a response has completed successfully' example: response: + completed_at: null created_at: 1704067200 error: null - id: resp-abc123 + frequency_penalty: null + id: 'resp-abc123' incomplete_details: null instructions: null max_output_tokens: null metadata: null - model: gpt-4 - object: response + model: 'gpt-4' + object: 'response' output: [] parallel_tool_calls: true - status: completed + presence_penalty: null + status: 'completed' temperature: null - tool_choice: auto + tool_choice: 'auto' tools: [] top_p: null sequence_number: 10 - type: response.completed + type: 'response.completed' StreamEventsResponseFailed: allOf: - $ref: '#/components/schemas/FailedEvent' - properties: response: $ref: '#/components/schemas/OpenResponsesResult' - type: object - description: Event emitted when a response has failed + type: 'object' + description: 'Event emitted when a response has failed' example: response: + completed_at: null created_at: 1704067200 error: null - id: resp-abc123 + frequency_penalty: null + id: 'resp-abc123' incomplete_details: null instructions: null max_output_tokens: null metadata: null - model: gpt-4 - object: response + model: 'gpt-4' + object: 'response' output: [] parallel_tool_calls: true - status: failed + presence_penalty: null + status: 'failed' temperature: null - tool_choice: auto + tool_choice: 'auto' tools: [] top_p: null sequence_number: 3 - type: response.failed + type: 'response.failed' StreamEventsResponseIncomplete: allOf: - $ref: '#/components/schemas/IncompleteEvent' - properties: response: $ref: '#/components/schemas/OpenResponsesResult' - type: object - description: Event emitted when a response is incomplete + type: 'object' + description: 'Event emitted when a response is incomplete' example: response: + completed_at: null created_at: 1704067200 error: null - id: resp-abc123 + frequency_penalty: null + id: 'resp-abc123' incomplete_details: null instructions: null max_output_tokens: null metadata: null - model: gpt-4 - object: response + model: 'gpt-4' + object: 'response' output: [] parallel_tool_calls: true - status: incomplete + presence_penalty: null + status: 'incomplete' temperature: null - tool_choice: auto + tool_choice: 'auto' tools: [] top_p: null sequence_number: 5 - type: response.incomplete + type: 'response.incomplete' StreamEventsResponseOutputItemAdded: allOf: - $ref: '#/components/schemas/OutputItemAddedEvent' - properties: item: $ref: '#/components/schemas/OutputItems' - type: object - description: Event emitted when a new output item is added to the response + type: 'object' + description: 'Event emitted when a new output item is added to the response' example: item: content: [] - id: item-1 - role: assistant - status: in_progress - type: message + id: 'item-1' + role: 'assistant' + status: 'in_progress' + type: 'message' output_index: 0 sequence_number: 2 - type: response.output_item.added + type: 'response.output_item.added' StreamEventsResponseOutputItemDone: allOf: - $ref: '#/components/schemas/OutputItemDoneEvent' - properties: item: $ref: '#/components/schemas/OutputItems' - type: object - description: Event emitted when an output item is complete + type: 'object' + description: 'Event emitted when an output item is complete' example: item: content: - annotations: [] - text: Hello! How can I help you? - type: output_text - id: item-1 - role: assistant - status: completed - type: message + text: 'Hello! How can I help you?' + type: 'output_text' + id: 'item-1' + role: 'assistant' + status: 'completed' + type: 'message' output_index: 0 sequence_number: 8 - type: response.output_item.done + type: 'response.output_item.done' StreamLogprob: allOf: - $ref: '#/components/schemas/OpenResponsesLogProbs' @@ -21381,9 +21507,9 @@ components: top_logprobs: items: $ref: '#/components/schemas/StreamLogprobTopLogprob' - type: array - type: object - description: Log probability information for a token + type: 'array' + type: 'object' + description: 'Log probability information for a token' example: bytes: - 72 @@ -21392,14 +21518,14 @@ components: - 108 - 111 logprob: -0.5 - token: Hello + token: 'Hello' top_logprobs: [] StreamLogprobTopLogprob: allOf: - $ref: '#/components/schemas/OpenResponsesTopLogprobs' - properties: {} - type: object - description: Alternative token with its log probability + type: 'object' + description: 'Alternative token with its log probability' example: bytes: - 72 @@ -21408,78 +21534,76 @@ components: - 108 - 111 logprob: -0.5 - token: Hello + token: 'Hello' STTInputAudio: - description: Base64-encoded audio to transcribe + description: 'Base64-encoded audio to transcribe' example: - data: UklGRiQA... - format: wav + data: 'UklGRiQA...' + format: 'wav' properties: data: - description: Base64-encoded audio data (raw bytes, not a data URI) - type: string + description: 'Base64-encoded audio data (raw bytes, not a data URI)' + type: 'string' format: - description: Audio format (e.g., wav, mp3, flac, m4a, ogg, webm, aac). Supported formats vary by provider. - type: string + description: 'Audio format (e.g., wav, mp3, flac, m4a, ogg, webm, aac). Supported formats vary by provider.' + type: 'string' required: - - data - - format - type: object + - 'data' + - 'format' + type: 'object' STTRequest: - description: Speech-to-text request input. Accepts a JSON body with input_audio containing base64-encoded audio. + description: 'Speech-to-text request input. Accepts a JSON body with input_audio containing base64-encoded audio.' example: input_audio: - data: UklGRiQA... - format: wav - language: en - model: openai/whisper-large-v3 + data: 'UklGRiQA...' + format: 'wav' + language: 'en' + model: 'openai/whisper-large-v3' properties: input_audio: $ref: '#/components/schemas/STTInputAudio' language: - description: ISO-639-1 language code (e.g., "en", "ja"). Auto-detected if omitted. - example: en - type: string + description: 'ISO-639-1 language code (e.g., "en", "ja"). Auto-detected if omitted.' + example: 'en' + type: 'string' model: - description: STT model identifier - example: openai/whisper-large-v3 - type: string + description: 'STT model identifier' + example: 'openai/whisper-large-v3' + type: 'string' provider: - description: Provider-specific passthrough configuration + description: 'Provider-specific passthrough configuration' properties: options: $ref: '#/components/schemas/ProviderOptions' - type: object + type: 'object' response_format: - description: >- - Output format. "json" (default) returns { text, usage }. "verbose_json" additionally returns task, language, duration, and segment-level timestamps; only supported by OpenAI-compatible providers. + description: 'Output format. "json" (default) returns { text, usage }. "verbose_json" additionally returns task, language, duration, and segment-level timestamps; only supported by OpenAI-compatible providers.' enum: - - json - - verbose_json - example: json - type: string + - 'json' + - 'verbose_json' + example: 'json' + type: 'string' x-speakeasy-unknown-values: allow temperature: - description: Sampling temperature for transcription + description: 'Sampling temperature for transcription' example: 0 - format: double - type: number + format: 'double' + type: 'number' timestamp_granularities: - description: >- - Timestamp detail levels to include when response_format is "verbose_json". "segment" returns segment-level timestamps; "word" additionally returns word-level timestamps in the words array. Ignored unless response_format is "verbose_json". + description: 'Timestamp detail levels to include when response_format is "verbose_json". "segment" returns segment-level timestamps; "word" additionally returns word-level timestamps in the words array. Ignored unless response_format is "verbose_json".' example: - - segment + - 'segment' items: $ref: '#/components/schemas/STTTimestampGranularity' - type: array + type: 'array' required: - - model - - input_audio - type: object + - 'model' + - 'input_audio' + type: 'object' STTResponse: - description: STT response containing transcribed text and optional usage statistics + description: 'STT response containing transcribed text and optional usage statistics' example: - text: Hello, this is a test of OpenAI speech-to-text transcription. + text: 'Hello, this is a test of OpenAI speech-to-text transcription.' usage: cost: 0.000508 input_tokens: 83 @@ -21488,40 +21612,39 @@ components: total_tokens: 113 properties: duration: - description: Duration of the input audio in seconds, present when response_format is verbose_json + description: 'Duration of the input audio in seconds, present when response_format is verbose_json' example: 9.2 - format: double - type: number + format: 'double' + type: 'number' language: - description: Detected or forced language, present when response_format is verbose_json - example: english - type: string + description: 'Detected or forced language, present when response_format is verbose_json' + example: 'english' + type: 'string' segments: - description: Timestamped transcript segments, present when response_format is verbose_json + description: 'Timestamped transcript segments, present when response_format is verbose_json' items: $ref: '#/components/schemas/STTSegment' - type: array + type: 'array' task: - description: The task performed, present when response_format is verbose_json - example: transcribe - type: string + description: 'The task performed, present when response_format is verbose_json' + example: 'transcribe' + type: 'string' text: - description: The transcribed text - example: >- - Hello, this is a test of OpenAI speech-to-text transcription. The weather is sunny today and the temperature is around 72 degrees. - type: string + description: 'The transcribed text' + example: 'Hello, this is a test of OpenAI speech-to-text transcription. The weather is sunny today and the temperature is around 72 degrees.' + type: 'string' usage: $ref: '#/components/schemas/STTUsage' words: - description: Timestamped words, present when the provider returns word-level timestamps + description: 'Timestamped words, present when the provider returns word-level timestamps' items: $ref: '#/components/schemas/STTWord' - type: array + type: 'array' required: - - text - type: object + - 'text' + type: 'object' STTSegment: - description: A timestamped transcript segment, returned when response_format is verbose_json + description: 'A timestamped transcript segment, returned when response_format is verbose_json' example: avg_logprob: -0.28 compression_ratio: 1.13 @@ -21531,71 +21654,71 @@ components: seek: 0 start: 0 temperature: 0 - text: Hello there. + text: 'Hello there.' tokens: - 50364 - 2425 - 456 properties: avg_logprob: - description: Average log probability of the segment - format: double - type: number + description: 'Average log probability of the segment' + format: 'double' + type: 'number' compression_ratio: - description: Compression ratio of the segment - format: double - type: number + description: 'Compression ratio of the segment' + format: 'double' + type: 'number' end: - description: Segment end time in seconds + description: 'Segment end time in seconds' example: 3.2 - format: double - type: number + format: 'double' + type: 'number' id: - description: Segment index within the transcript + description: 'Segment index within the transcript' example: 0 - type: integer + type: 'integer' no_speech_prob: - description: Probability the segment contains no speech - format: double - type: number + description: 'Probability the segment contains no speech' + format: 'double' + type: 'number' seek: - description: Seek offset of the segment + description: 'Seek offset of the segment' example: 0 - type: integer + type: 'integer' start: - description: Segment start time in seconds + description: 'Segment start time in seconds' example: 0 - format: double - type: number + format: 'double' + type: 'number' temperature: - description: Temperature used for the segment - format: double - type: number + description: 'Temperature used for the segment' + format: 'double' + type: 'number' text: - description: Transcribed text of the segment - example: Hello there. - type: string + description: 'Transcribed text of the segment' + example: 'Hello there.' + type: 'string' tokens: - description: Token IDs of the segment + description: 'Token IDs of the segment' items: - type: integer - type: array - required: - - id - - start - - end - - text - type: object + type: 'integer' + type: 'array' + required: + - 'id' + - 'start' + - 'end' + - 'text' + type: 'object' STTTimestampGranularity: - description: A timestamp detail level for verbose_json transcription responses. + description: 'A timestamp detail level for verbose_json transcription responses.' enum: - - word - - segment - example: word - type: string + - 'word' + - 'segment' + example: 'word' + type: 'string' x-speakeasy-unknown-values: allow STTUsage: - description: Aggregated usage statistics for the request + description: 'Aggregated usage statistics for the request' example: cost: 0.000508 input_tokens: 83 @@ -21604,187 +21727,177 @@ components: total_tokens: 113 properties: cost: - description: Total cost of the request in USD + description: 'Total cost of the request in USD' example: 0.000508 - format: double - type: number + format: 'double' + type: 'number' input_tokens: - description: Number of input tokens billed for this request + description: 'Number of input tokens billed for this request' example: 83 - type: integer + type: 'integer' output_tokens: - description: Number of output tokens generated + description: 'Number of output tokens generated' example: 30 - type: integer + type: 'integer' seconds: - description: Duration of the input audio in seconds + description: 'Duration of the input audio in seconds' example: 9.2 - format: double - type: number + format: 'double' + type: 'number' total_tokens: - description: Total number of tokens used (input + output) + description: 'Total number of tokens used (input + output)' example: 113 - type: integer - type: object + type: 'integer' + type: 'object' STTWord: - description: A timestamped word, returned when the provider includes word-level timestamps + description: 'A timestamped word, returned when the provider includes word-level timestamps' example: end: 0.4 start: 0 - word: Hello + word: 'Hello' properties: end: - description: Word end time in seconds + description: 'Word end time in seconds' example: 0.4 - format: double - type: number + format: 'double' + type: 'number' start: - description: Word start time in seconds + description: 'Word start time in seconds' example: 0 - format: double - type: number + format: 'double' + type: 'number' word: - description: The transcribed word - example: Hello - type: string - required: - - word - - start - - end - type: object + description: 'The transcribed word' + example: 'Hello' + type: 'string' + required: + - 'word' + - 'start' + - 'end' + type: 'object' SubagentNestedTool: - additionalProperties: - nullable: true - description: >- - A tool made available to the subagent. Only OpenRouter server tools (e.g. openrouter:web_search) are supported; function tools are rejected because the worker has no way to execute them. The subagent tool may not list itself. + additionalProperties: {} + description: 'A tool made available to the subagent. Only OpenRouter server tools (e.g. openrouter:web_search) are supported; function tools are rejected because the worker has no way to execute them. The subagent tool may not list itself.' example: - type: openrouter:web_search + type: 'openrouter:web_search' properties: parameters: - additionalProperties: - nullable: true - type: object + additionalProperties: {} + type: 'object' type: - type: string + type: 'string' required: - - type - type: object + - 'type' + type: 'object' SubagentReasoning: - description: >- - Reasoning configuration forwarded to the subagent call. Use this to control reasoning effort and token budget for models that support extended thinking. + description: 'Reasoning configuration forwarded to the subagent call. Use this to control reasoning effort and token budget for models that support extended thinking.' example: - effort: low + effort: 'low' properties: effort: - description: Reasoning effort level for the subagent call. - enum: - - max - - xhigh - - high - - medium - - low - - minimal - - none - type: string + description: 'Reasoning effort level for the subagent call.' + enum: + - 'max' + - 'xhigh' + - 'high' + - 'medium' + - 'low' + - 'minimal' + - 'none' + type: 'string' x-speakeasy-unknown-values: allow max_tokens: - description: >- - Maximum number of reasoning tokens the subagent may use. Accepted and validated but not yet forwarded to the subagent call. - type: integer - type: object + description: 'Maximum number of reasoning tokens the subagent may use. Accepted and validated but not yet forwarded to the subagent call.' + type: 'integer' + type: 'object' SubagentServerTool_OpenRouter: - description: >- - OpenRouter built-in server tool: delegates self-contained tasks to a smaller, cheaper, faster worker model (any OpenRouter model) mid-generation and returns its outcome. The worker may run as a sub-agent with its own tools. + description: 'OpenRouter built-in server tool: delegates self-contained tasks to a smaller, cheaper, faster worker model (any OpenRouter model) mid-generation and returns its outcome. The worker may run as a sub-agent with its own tools.' example: parameters: - model: ~anthropic/claude-haiku-latest - type: openrouter:subagent + model: '~anthropic/claude-haiku-latest' + type: 'openrouter:subagent' properties: parameters: $ref: '#/components/schemas/SubagentServerToolConfig' type: enum: - - openrouter:subagent - type: string + - 'openrouter:subagent' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' SubagentServerToolConfig: - description: Configuration for the openrouter:subagent server tool. + description: 'Configuration for the openrouter:subagent server tool.' example: - model: ~anthropic/claude-haiku-latest + model: '~anthropic/claude-haiku-latest' properties: instructions: - description: System instructions for the subagent. When omitted, the subagent responds with no system prompt of its own. - example: You are a fast, focused worker. Complete the task exactly as described. - type: string + description: 'System instructions for the subagent. When omitted, the subagent responds with no system prompt of its own.' + example: 'You are a fast, focused worker. Complete the task exactly as described.' + type: 'string' max_completion_tokens: - description: >- - Maximum number of output tokens (including reasoning) the subagent may produce. When omitted, the provider's default applies. + description: 'Maximum number of output tokens (including reasoning) the subagent may produce. When omitted, the provider''s default applies.' example: 2048 - type: integer + type: 'integer' max_tool_calls: - description: >- - Maximum number of tool-calling steps the subagent may take during its agentic loop. Capped at 25. Only relevant when the subagent is given tools. Accepted and validated but not yet enforced on the subagent call. + description: 'Maximum number of tool-calling steps the subagent may take during its agentic loop. Capped at 25. Only relevant when the subagent is given tools. Accepted and validated but not yet enforced on the subagent call.' example: 5 maximum: 25 minimum: 1 - type: integer + type: 'integer' model: - description: >- - Slug of the model that executes delegated tasks (any OpenRouter model). Typically a smaller, cheaper, faster model than the one delegating. When omitted, the model from the outer API request is used. The subagent tool itself cannot be the subagent model. - example: ~anthropic/claude-haiku-latest - type: string + description: 'Slug of the model that executes delegated tasks (any OpenRouter model). Typically a smaller, cheaper, faster model than the one delegating. When omitted, the model from the outer API request is used. The subagent tool itself cannot be the subagent model.' + example: '~anthropic/claude-haiku-latest' + type: 'string' reasoning: $ref: '#/components/schemas/SubagentReasoning' temperature: - description: Sampling temperature forwarded to the subagent call. When omitted, the provider's default applies. + description: 'Sampling temperature forwarded to the subagent call. When omitted, the provider''s default applies.' example: 0.7 - format: double - type: number + format: 'double' + type: 'number' tools: - description: >- - Tools the subagent may use while executing a delegated task. The subagent runs as an agentic sub-agent over these tools, then returns its outcome. Only OpenRouter server tools are supported — function tools are rejected — and the list must not include the subagent tool itself. + description: 'Tools the subagent may use while executing a delegated task. The subagent runs as an agentic sub-agent over these tools, then returns its outcome. Only OpenRouter server tools are supported — function tools are rejected — and the list must not include the subagent tool itself.' items: $ref: '#/components/schemas/SubagentNestedTool' - type: array - type: object + type: 'array' + type: 'object' SubmitGenerationFeedbackRequest: - description: Structured feedback about a specific generation + description: 'Structured feedback about a specific generation' example: - category: incorrect_response - comment: The model repeated the same paragraph three times. - generation_id: gen-3bhGkxlo4XFrqiabUM7NDtwDzWwG + category: 'incorrect_response' + comment: 'The model repeated the same paragraph three times.' + generation_id: 'gen-3bhGkxlo4XFrqiabUM7NDtwDzWwG' properties: category: - description: The category of feedback being reported - enum: - - latency - - incoherence - - incorrect_response - - formatting - - billing - - api_error - - other - example: incorrect_response - type: string + description: 'The category of feedback being reported' + enum: + - 'latency' + - 'incoherence' + - 'incorrect_response' + - 'formatting' + - 'billing' + - 'api_error' + - 'other' + example: 'incorrect_response' + type: 'string' x-speakeasy-unknown-values: allow comment: - description: An optional free-text comment describing the feedback - example: The model repeated the same paragraph three times. + description: 'An optional free-text comment describing the feedback' + example: 'The model repeated the same paragraph three times.' maxLength: 1000 - type: string + type: 'string' generation_id: - description: The generation to submit feedback on - example: gen-3bhGkxlo4XFrqiabUM7NDtwDzWwG + description: 'The generation to submit feedback on' + example: 'gen-3bhGkxlo4XFrqiabUM7NDtwDzWwG' minLength: 1 - type: string + type: 'string' required: - - generation_id - - category - type: object + - 'generation_id' + - 'category' + type: 'object' SubmitGenerationFeedbackResponse: - description: Confirmation that the feedback was recorded + description: 'Confirmation that the feedback was recorded' example: data: success: true @@ -21793,161 +21906,153 @@ components: properties: success: const: true - description: Whether the feedback was recorded + description: 'Whether the feedback was recorded' example: true - type: boolean + type: 'boolean' required: - - success - type: object + - 'success' + type: 'object' required: - - data - type: object + - 'data' + type: 'object' SupportedParameters: additionalProperties: $ref: '#/components/schemas/CapabilityDescriptor' - description: >- - Union of supported parameters across every endpoint of this model. Coarse discovery aid; the definitive per-endpoint set is behind the endpoints URL. + description: 'Union of supported parameters across every endpoint of this model. Coarse discovery aid; the definitive per-endpoint set is behind the endpoints URL.' example: output_compression: max: 100 min: 0 - type: range + type: 'range' resolution: - type: enum + type: 'enum' values: - - 1K - - 2K - - 4K + - '1K' + - '2K' + - '4K' seed: - type: boolean - type: object + type: 'boolean' + type: 'object' TaskClassificationItem: example: category_token_share: 0.48 category_usage_share: 0.51 - display_name: Code Generation - macro_category: code + display_name: 'Code Generation' + macro_category: 'code' models: - - id: openai/gpt-4.1-mini + - id: 'openai/gpt-4.1-mini' tag_token_share: 0.75 tag_usage_share: 0.55 - - id: anthropic/claude-sonnet-4 + - id: 'anthropic/claude-sonnet-4' tag_token_share: 0.12 tag_usage_share: 0.2 - tag: code:general_impl + tag: 'code:general_impl' token_share: 0.31 usage_share: 0.23 properties: category_token_share: - description: >- - Fraction of this classification's token volume within its macro-category (0–1). Sums to 1 across all classifications sharing the same `macro_category`. + description: 'Fraction of this classification''s token volume within its macro-category (0–1). Sums to 1 across all classifications sharing the same `macro_category`.' example: 0.48 - format: double - type: number + format: 'double' + type: 'number' category_usage_share: - description: >- - Fraction of this classification's usage within its macro-category (0–1). Sums to 1 across all classifications sharing the same `macro_category`. + description: 'Fraction of this classification''s usage within its macro-category (0–1). Sums to 1 across all classifications sharing the same `macro_category`.' example: 0.51 - format: double - type: number + format: 'double' + type: 'number' display_name: - description: Human-readable label for the classification. - example: Code Generation - type: string + description: 'Human-readable label for the classification.' + example: 'Code Generation' + type: 'string' macro_category: description: 'Coarse grouping derived from the tag prefix: `code`, `data`, `agent`, or `general`.' - example: code - type: string + example: 'code' + type: 'string' models: - description: >- - Top models for this classification by request volume, sorted descending. Each entry reports the model's share of this classification's requests and tokens. + description: 'Top models for this classification by request volume, sorted descending. Each entry reports the model''s share of this classification''s requests and tokens.' items: $ref: '#/components/schemas/TaskClassificationModel' - type: array + type: 'array' tag: - description: Classification tag identifier (e.g. `code:general_impl`, `agent:web_search`). - example: code:general_impl - type: string + description: 'Classification tag identifier (e.g. `code:general_impl`, `agent:web_search`).' + example: 'code:general_impl' + type: 'string' token_share: - description: >- - Fraction of classified sampled token volume (prompt + completion) attributed to this classification (0–1). The unclassified `other` bucket is excluded from the denominator. + description: 'Fraction of classified sampled token volume (prompt + completion) attributed to this classification (0–1). The unclassified `other` bucket is excluded from the denominator.' example: 0.31 - format: double - type: number + format: 'double' + type: 'number' usage_share: - description: >- - Fraction of classified sampled requests attributed to this classification (0–1). The unclassified `other` bucket is excluded from the denominator. + description: 'Fraction of classified sampled requests attributed to this classification (0–1). The unclassified `other` bucket is excluded from the denominator.' example: 0.23 - format: double - type: number - required: - - tag - - display_name - - macro_category - - usage_share - - token_share - - category_usage_share - - category_token_share - - models - type: object + format: 'double' + type: 'number' + required: + - 'tag' + - 'display_name' + - 'macro_category' + - 'usage_share' + - 'token_share' + - 'category_usage_share' + - 'category_token_share' + - 'models' + type: 'object' TaskClassificationMacroCategory: example: - key: code - label: Code + key: 'code' + label: 'Code' token_share: 0.52 usage_share: 0.45 properties: key: - description: Macro-category identifier. - example: code - type: string + description: 'Macro-category identifier.' + example: 'code' + type: 'string' label: - description: Human-readable label for the macro-category. - example: Code - type: string + description: 'Human-readable label for the macro-category.' + example: 'Code' + type: 'string' token_share: - description: Combined token share of all classifications in this macro-category (0–1). + description: 'Combined token share of all classifications in this macro-category (0–1).' example: 0.52 - format: double - type: number + format: 'double' + type: 'number' usage_share: - description: Combined usage share of all classifications in this macro-category (0–1). + description: 'Combined usage share of all classifications in this macro-category (0–1).' example: 0.45 - format: double - type: number - required: - - key - - label - - usage_share - - token_share - type: object + format: 'double' + type: 'number' + required: + - 'key' + - 'label' + - 'usage_share' + - 'token_share' + type: 'object' TaskClassificationModel: example: - id: openai/gpt-4.1-mini + id: 'openai/gpt-4.1-mini' tag_token_share: 0.75 tag_usage_share: 0.55 properties: id: - description: Model identifier (permaslug). - example: openai/gpt-4.1-mini - type: string + description: 'Model identifier (permaslug).' + example: 'openai/gpt-4.1-mini' + type: 'string' tag_token_share: - description: >- - Fraction of this classification's sampled token volume attributed to this model (0–1). Sums to ≤1 across the returned models (only top-N are included and unattributed requests are excluded). + description: 'Fraction of this classification''s sampled token volume attributed to this model (0–1). Sums to ≤1 across the returned models (only top-N are included and unattributed requests are excluded).' example: 0.75 - format: double - type: number + format: 'double' + type: 'number' tag_usage_share: - description: >- - Fraction of this classification's sampled requests attributed to this model (0–1). Sums to ≤1 across the returned models (only top-N are included and unattributed requests are excluded). + description: 'Fraction of this classification''s sampled requests attributed to this model (0–1). Sums to ≤1 across the returned models (only top-N are included and unattributed requests are excluded).' example: 0.55 - format: double - type: number + format: 'double' + type: 'number' required: - - id - - tag_usage_share - - tag_token_share - type: object + - 'id' + - 'tag_usage_share' + - 'tag_token_share' + type: 'object' TaskClassificationResponse: example: data: @@ -21955,18 +22060,18 @@ components: classifications: - category_token_share: 0.48 category_usage_share: 0.51 - display_name: Code Generation - macro_category: code + display_name: 'Code Generation' + macro_category: 'code' models: - - id: openai/gpt-4.1-mini + - id: 'openai/gpt-4.1-mini' tag_token_share: 0.75 tag_usage_share: 0.55 - tag: code:general_impl + tag: 'code:general_impl' token_share: 0.31 usage_share: 0.23 macro_categories: - - key: code - label: Code + - key: 'code' + label: 'Code' token_share: 0.52 usage_share: 0.45 window_days: 7 @@ -21974,52 +22079,52 @@ components: data: properties: as_of: - description: >- - UTC date (YYYY-MM-DD) of the window upper bound (yesterday). Data is exclusive of the current incomplete UTC day. This is the expected latest date in the snapshot; it does not confirm data presence for that date. + description: 'UTC date (YYYY-MM-DD) of the window upper bound (yesterday). Data is exclusive of the current incomplete UTC day. This is the expected latest date in the snapshot; it does not confirm data presence for that date.' example: '2026-06-17' - type: string + type: 'string' classifications: - description: Per-task classification market-share data, sorted by usage_share descending. + description: 'Per-task classification market-share data, sorted by usage_share descending.' items: $ref: '#/components/schemas/TaskClassificationItem' - type: array + type: 'array' macro_categories: - description: Aggregate market-share data per macro-category (code, data, agent, general). + description: 'Aggregate market-share data per macro-category (code, data, agent, general).' items: $ref: '#/components/schemas/TaskClassificationMacroCategory' - type: array + type: 'array' window_days: - description: Number of trailing days covered by this snapshot. + description: 'Number of trailing days covered by this snapshot.' example: 7 - type: integer + type: 'integer' required: - - window_days - - as_of - - classifications - - macro_categories - type: object - required: - - data - type: object + - 'window_days' + - 'as_of' + - 'classifications' + - 'macro_categories' + type: 'object' + required: + - 'data' + type: 'object' TextConfig: - description: Text output configuration including format and verbosity + description: 'Text output configuration including format and verbosity' example: format: - type: text - verbosity: medium + type: 'text' + verbosity: 'medium' properties: format: $ref: '#/components/schemas/Formats' verbosity: enum: - - high - - low - - medium + - 'high' + - 'low' + - 'medium' - null - nullable: true - type: string + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow - type: object + type: 'object' TextDeltaEvent: allOf: - $ref: '#/components/schemas/BaseTextDeltaEvent' @@ -22027,17 +22132,17 @@ components: logprobs: items: $ref: '#/components/schemas/StreamLogprob' - type: array - type: object - description: Event emitted when a text delta is streamed + type: 'array' + type: 'object' + description: 'Event emitted when a text delta is streamed' example: content_index: 0 - delta: Hello - item_id: item-1 + delta: 'Hello' + item_id: 'item-1' logprobs: [] output_index: 0 sequence_number: 4 - type: response.output_text.delta + type: 'response.output_text.delta' TextDoneEvent: allOf: - $ref: '#/components/schemas/BaseTextDoneEvent' @@ -22045,293 +22150,300 @@ components: logprobs: items: $ref: '#/components/schemas/StreamLogprob' - type: array - type: object - description: Event emitted when text streaming is complete + type: 'array' + type: 'object' + description: 'Event emitted when text streaming is complete' example: content_index: 0 - item_id: item-1 + item_id: 'item-1' logprobs: [] output_index: 0 sequence_number: 6 - text: Hello! How can I help you? - type: response.output_text.done + text: 'Hello! How can I help you?' + type: 'response.output_text.done' TextExtendedConfig: allOf: - $ref: '#/components/schemas/TextConfig' - properties: verbosity: enum: - - low - - medium - - high - - xhigh - - max + - 'low' + - 'medium' + - 'high' + - 'xhigh' + - 'max' - null - nullable: true - type: string + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow - type: object - description: Text output configuration including format and verbosity + type: 'object' + description: 'Text output configuration including format and verbosity' example: format: - type: text + type: 'text' ToolCallStatus: enum: - - in_progress - - completed - - incomplete - example: completed - type: string + - 'in_progress' + - 'completed' + - 'incomplete' + example: 'completed' + type: 'string' x-speakeasy-unknown-values: allow ToolChoiceAllowed: - description: Constrains the model to a pre-defined set of allowed tools + description: 'Constrains the model to a pre-defined set of allowed tools' example: - mode: auto + mode: 'auto' tools: - - name: get_weather - type: function - type: allowed_tools + - name: 'get_weather' + type: 'function' + type: 'allowed_tools' properties: mode: anyOf: - enum: - - auto - type: string + - 'auto' + type: 'string' - enum: - - required - type: string + - 'required' + type: 'string' tools: items: - additionalProperties: - nullable: true - type: object - type: array + additionalProperties: {} + type: 'object' + type: 'array' type: enum: - - allowed_tools - type: string + - 'allowed_tools' + type: 'string' required: - - type - - mode - - tools - type: object + - 'type' + - 'mode' + - 'tools' + type: 'object' TooManyRequestsResponse: - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' properties: error: $ref: '#/components/schemas/TooManyRequestsResponseErrorData' openrouter_metadata: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' user_id: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - error - type: object + - 'error' + type: 'object' TooManyRequestsResponseErrorData: - description: Error data for TooManyRequestsResponse + description: 'Error data for TooManyRequestsResponse' example: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' properties: code: - type: integer + type: 'integer' message: - type: string + type: 'string' metadata: - additionalProperties: - nullable: true - nullable: true - type: object - required: - - code - - message - type: object + additionalProperties: {} + type: + - 'object' + - 'null' + required: + - 'code' + - 'message' + type: 'object' TopProviderInfo: - description: Information about the top provider for this model + description: 'Information about the top provider for this model' example: context_length: 8192 is_moderated: true max_completion_tokens: 4096 properties: context_length: - description: Context length from the top provider + description: 'Context length from the top provider' example: 8192 - nullable: true - type: integer + type: + - 'integer' + - 'null' is_moderated: - description: Whether the top provider moderates content + description: 'Whether the top provider moderates content' example: true - type: boolean + type: 'boolean' max_completion_tokens: - description: Maximum completion tokens from the top provider + description: 'Maximum completion tokens from the top provider' example: 4096 - nullable: true - type: integer + type: + - 'integer' + - 'null' required: - - is_moderated - type: object + - 'is_moderated' + type: 'object' TraceConfig: - additionalProperties: - nullable: true - description: >- - Metadata for observability and tracing. Known keys (trace_id, trace_name, span_name, generation_name, parent_span_id) have special handling. Additional keys are passed through as custom metadata to configured broadcast destinations. + additionalProperties: {} + description: 'Metadata for observability and tracing. Known keys (trace_id, trace_name, span_name, generation_name, parent_span_id) have special handling. Additional keys are passed through as custom metadata to configured broadcast destinations.' example: - trace_id: trace-abc123 - trace_name: my-app-trace + trace_id: 'trace-abc123' + trace_name: 'my-app-trace' properties: generation_name: - type: string + type: 'string' parent_span_id: - type: string + type: 'string' span_name: - type: string + type: 'string' trace_id: - type: string + type: 'string' trace_name: - type: string - type: object + type: 'string' + type: 'object' Truncation: enum: - - auto - - disabled + - 'auto' + - 'disabled' - null - example: auto - nullable: true - type: string + example: 'auto' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow UnauthorizedResponse: - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' properties: error: $ref: '#/components/schemas/UnauthorizedResponseErrorData' openrouter_metadata: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' user_id: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - error - type: object + - 'error' + type: 'object' UnauthorizedResponseErrorData: - description: Error data for UnauthorizedResponse + description: 'Error data for UnauthorizedResponse' example: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' properties: code: - type: integer + type: 'integer' message: - type: string + type: 'string' metadata: - additionalProperties: - nullable: true - nullable: true - type: object - required: - - code - - message - type: object + additionalProperties: {} + type: + - 'object' + - 'null' + required: + - 'code' + - 'message' + type: 'object' UnifiedBenchmarkPricing: - description: OpenRouter pricing per token for this model. Null if pricing is unavailable. + description: 'OpenRouter pricing per token for this model. Null if pricing is unavailable.' example: completion: '0.000015' prompt: '0.000003' - nullable: true properties: completion: - description: Cost per output token (USD, decimal string). + description: 'Cost per output token (USD, decimal string).' example: '0.000015' - type: string + type: 'string' prompt: - description: Cost per input token (USD, decimal string). + description: 'Cost per input token (USD, decimal string).' example: '0.000003' - type: string + type: 'string' required: - - prompt - - completion - type: object + - 'prompt' + - 'completion' + type: + - 'object' + - 'null' UnifiedBenchmarksAAItem: example: agentic_index: 58.3 coding_index: 65.8 - display_name: GPT-4o + display_name: 'GPT-4o' intelligence_index: 71.2 - model_permaslug: openai/gpt-4o + model_permaslug: 'openai/gpt-4o' pricing: completion: '0.00001' prompt: '0.0000025' - source: artificial-analysis + source: 'artificial-analysis' properties: agentic_index: - description: Artificial Analysis Agentic Index composite score. Higher is better. + description: 'Artificial Analysis Agentic Index composite score. Higher is better.' example: 58.3 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' coding_index: - description: Artificial Analysis Coding Index composite score. Higher is better. + description: 'Artificial Analysis Coding Index composite score. Higher is better.' example: 65.8 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' display_name: - description: Model name as listed on Artificial Analysis. - example: GPT-4o - type: string + description: 'Model name as listed on Artificial Analysis.' + example: 'GPT-4o' + type: 'string' intelligence_index: - description: Artificial Analysis Intelligence Index composite score. Higher is better. + description: 'Artificial Analysis Intelligence Index composite score. Higher is better.' example: 71.2 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' model_permaslug: - description: Stable OpenRouter model identifier. - example: openai/gpt-4o - type: string + description: 'Stable OpenRouter model identifier.' + example: 'openai/gpt-4o' + type: 'string' pricing: $ref: '#/components/schemas/UnifiedBenchmarkPricing' source: - description: Benchmark source discriminator. - enum: - - artificial-analysis - type: string - required: - - source - - model_permaslug - - display_name - - intelligence_index - - coding_index - - agentic_index - - pricing - type: object + description: 'Benchmark source discriminator.' + enum: + - 'artificial-analysis' + type: 'string' + required: + - 'source' + - 'model_permaslug' + - 'display_name' + - 'intelligence_index' + - 'coding_index' + - 'agentic_index' + - 'pricing' + type: 'object' UnifiedBenchmarksDAItem: example: - arena: models + arena: 'models' avg_generation_time_ms: 3200 - category: codecategories - display_name: Claude Sonnet 4 + category: 'codecategories' + display_name: 'Claude Sonnet 4' elo: 1423 - model_permaslug: anthropic/claude-sonnet-4 + model_permaslug: 'anthropic/claude-sonnet-4' pricing: completion: '0.000015' prompt: '0.000003' - source: design-arena + source: 'design-arena' tournament_stats: first_place: 12 fourth_place: 2 @@ -22341,149 +22453,158 @@ components: win_rate: 72 properties: arena: - description: Arena this ranking belongs to. - example: models - type: string + description: 'Arena this ranking belongs to.' + example: 'models' + type: 'string' avg_generation_time_ms: - description: Average generation time in milliseconds. + description: 'Average generation time in milliseconds.' example: 3200 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' category: - description: Category within the arena. - example: codecategories - type: string + description: 'Category within the arena.' + example: 'codecategories' + type: 'string' display_name: - description: Human-readable model name from Design Arena. - example: Claude Sonnet 4 - type: string + description: 'Human-readable model name from Design Arena.' + example: 'Claude Sonnet 4' + type: 'string' elo: - description: ELO rating from head-to-head arena battles. + description: 'ELO rating from head-to-head arena battles.' example: 1423 - format: double - type: number + format: 'double' + type: 'number' model_permaslug: - description: Stable OpenRouter model identifier when mapped; otherwise the upstream Design Arena model id. - example: anthropic/claude-sonnet-4 - type: string + description: 'Stable OpenRouter model identifier when mapped; otherwise the upstream Design Arena model id.' + example: 'anthropic/claude-sonnet-4' + type: 'string' pricing: $ref: '#/components/schemas/UnifiedBenchmarkPricing' source: - description: Benchmark source discriminator. + description: 'Benchmark source discriminator.' enum: - - design-arena - type: string + - 'design-arena' + type: 'string' tournament_stats: - description: Placement distribution from tournament matches. + description: 'Placement distribution from tournament matches.' properties: first_place: - nullable: true - type: integer + type: + - 'integer' + - 'null' fourth_place: - nullable: true - type: integer + type: + - 'integer' + - 'null' second_place: - nullable: true - type: integer + type: + - 'integer' + - 'null' third_place: - nullable: true - type: integer + type: + - 'integer' + - 'null' total: - nullable: true - type: integer + type: + - 'integer' + - 'null' required: - - first_place - - second_place - - third_place - - fourth_place - - total - type: object + - 'first_place' + - 'second_place' + - 'third_place' + - 'fourth_place' + - 'total' + type: 'object' win_rate: - description: Win rate as a percentage (0–100). + description: 'Win rate as a percentage (0–100).' example: 72 - format: double - type: number - required: - - source - - model_permaslug - - display_name - - arena - - category - - elo - - win_rate - - avg_generation_time_ms - - tournament_stats - - pricing - type: object + format: 'double' + type: 'number' + required: + - 'source' + - 'model_permaslug' + - 'display_name' + - 'arena' + - 'category' + - 'elo' + - 'win_rate' + - 'avg_generation_time_ms' + - 'tournament_stats' + - 'pricing' + type: 'object' UnifiedBenchmarksMeta: example: as_of: '2026-06-03T12:00:00Z' citation: 'Source: Artificial Analysis (artificialanalysis.ai) via OpenRouter (openrouter.ai/rankings).' model_count: 50 - source: artificial-analysis - source_url: https://artificialanalysis.ai + source: 'artificial-analysis' + source_url: 'https://artificialanalysis.ai' task_type: null - version: v1 + version: 'v1' properties: as_of: - description: ISO-8601 timestamp of when this data was last updated. + description: 'ISO-8601 timestamp of when this data was last updated.' example: '2026-06-03T12:00:00Z' - type: string + type: 'string' citation: - description: >- - Required attribution when republishing this data, or null when results span multiple sources (attribute each item individually by its `source` discriminator). + description: 'Required attribution when republishing this data, or null when results span multiple sources (attribute each item individually by its `source` discriminator).' example: 'Source: Artificial Analysis (artificialanalysis.ai) via OpenRouter (openrouter.ai/rankings).' - nullable: true - type: string + type: + - 'string' + - 'null' model_count: - description: Number of unique models in the response. - type: integer + description: 'Number of unique models in the response.' + type: 'integer' source: - description: The source filter applied, or null when all sources are returned. + description: 'The source filter applied, or null when all sources are returned.' enum: - - artificial-analysis - - design-arena + - 'artificial-analysis' + - 'design-arena' - null - example: artificial-analysis - nullable: true - type: string + example: 'artificial-analysis' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow source_url: - description: URL of the upstream data source, or null when results span multiple sources. - example: https://artificialanalysis.ai - nullable: true - type: string + description: 'URL of the upstream data source, or null when results span multiple sources.' + example: 'https://artificialanalysis.ai' + type: + - 'string' + - 'null' task_type: - description: The task_type filter applied, or null if showing all. - nullable: true - type: string + description: 'The task_type filter applied, or null if showing all.' + type: + - 'string' + - 'null' version: - description: Dataset version. - enum: - - v1 - type: string - required: - - as_of - - version - - source - - source_url - - citation - - model_count - - task_type - type: object + description: 'Dataset version.' + enum: + - 'v1' + type: 'string' + required: + - 'as_of' + - 'version' + - 'source' + - 'source_url' + - 'citation' + - 'model_count' + - 'task_type' + type: 'object' UnifiedBenchmarksResponse: example: data: - agentic_index: 58.3 coding_index: 65.8 - display_name: GPT-4o + display_name: 'GPT-4o' intelligence_index: 71.2 - model_permaslug: openai/gpt-4o + model_permaslug: 'openai/gpt-4o' pricing: completion: '0.00001' prompt: '0.0000025' - source: artificial-analysis + source: 'artificial-analysis' meta: as_of: '2026-06-03T12:00:00Z' citation: null @@ -22491,7 +22612,7 @@ components: source: null source_url: null task_type: null - version: v1 + version: 'v1' properties: data: items: @@ -22499,99 +22620,101 @@ components: mapping: artificial-analysis: '#/components/schemas/UnifiedBenchmarksAAItem' design-arena: '#/components/schemas/UnifiedBenchmarksDAItem' - propertyName: source + propertyName: 'source' oneOf: - $ref: '#/components/schemas/UnifiedBenchmarksAAItem' - $ref: '#/components/schemas/UnifiedBenchmarksDAItem' - type: array + type: 'array' meta: $ref: '#/components/schemas/UnifiedBenchmarksMeta' required: - - data - - meta - type: object + - 'data' + - 'meta' + type: 'object' UnprocessableEntityResponse: - description: Unprocessable Entity - Semantic validation failure + description: 'Unprocessable Entity - Semantic validation failure' example: error: code: 422 - message: Invalid argument + message: 'Invalid argument' properties: error: $ref: '#/components/schemas/UnprocessableEntityResponseErrorData' openrouter_metadata: - additionalProperties: - nullable: true - nullable: true - type: object + additionalProperties: {} + type: + - 'object' + - 'null' user_id: - nullable: true - type: string + type: + - 'string' + - 'null' required: - - error - type: object + - 'error' + type: 'object' UnprocessableEntityResponseErrorData: - description: Error data for UnprocessableEntityResponse + description: 'Error data for UnprocessableEntityResponse' example: code: 422 - message: Invalid argument + message: 'Invalid argument' properties: code: - type: integer + type: 'integer' message: - type: string + type: 'string' metadata: - additionalProperties: - nullable: true - nullable: true - type: object - required: - - code - - message - type: object + additionalProperties: {} + type: + - 'object' + - 'null' + required: + - 'code' + - 'message' + type: 'object' UpdateBYOKKeyRequest: example: disabled: false - name: Updated OpenAI Key + name: 'Updated OpenAI Key' properties: allowed_models: - description: Optional allowlist of model slugs this credential may be used for. `null` means no restriction. + description: 'Optional allowlist of model slugs this credential may be used for. `null` means no restriction.' example: null items: - type: string + type: 'string' maxItems: 100 - nullable: true - type: array + type: + - 'array' + - 'null' allowed_user_ids: - description: Optional allowlist of user IDs that may use this credential. `null` means no restriction. + description: 'Optional allowlist of user IDs that may use this credential. `null` means no restriction.' example: null items: - type: string + type: 'string' maxItems: 100 - nullable: true - type: array + type: + - 'array' + - 'null' disabled: - description: Whether this credential is disabled. + description: 'Whether this credential is disabled.' example: false - type: boolean + type: 'boolean' is_fallback: - description: >- - Whether this credential is treated as a fallback — used only after non-fallback keys for the same provider have been tried. + description: 'Whether this credential is treated as a fallback — used only after non-fallback keys for the same provider have been tried.' example: false - type: boolean + type: 'boolean' key: - description: >- - A new raw provider API key to rotate the credential in-place. The previous key material is overwritten and the masked label is regenerated. Encrypted at rest and never returned in API responses. - example: sk-proj-newkey456... + description: 'A new raw provider API key to rotate the credential in-place. The previous key material is overwritten and the masked label is regenerated. Encrypted at rest and never returned in API responses.' + example: 'sk-proj-newkey456...' minLength: 1 - type: string + type: 'string' name: - description: Optional human-readable name for the credential. - example: Updated OpenAI Key + description: 'Optional human-readable name for the credential.' + example: 'Updated OpenAI Key' maxLength: 255 - nullable: true - type: string - type: object + type: + - 'string' + - 'null' + type: 'object' UpdateBYOKKeyResponse: example: data: @@ -22600,427 +22723,443 @@ components: allowed_user_ids: null created_at: '2025-08-24T10:30:00Z' disabled: false - id: 11111111-2222-3333-4444-555555555555 + id: '11111111-2222-3333-4444-555555555555' is_fallback: false - label: sk-...AbCd - name: Updated OpenAI Key - provider: openai + label: 'sk-...AbCd' + name: 'Updated OpenAI Key' + provider: 'openai' sort_order: 0 - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: data: allOf: - $ref: '#/components/schemas/BYOKKey' - - description: The updated BYOK credential. + - description: 'The updated BYOK credential.' required: - - data - type: object + - 'data' + type: 'object' UpdateGuardrailRequest: example: - description: Updated description + description: 'Updated description' limit_usd: 75 - name: Updated Guardrail Name - reset_interval: weekly + name: 'Updated Guardrail Name' + reset_interval: 'weekly' properties: allowed_models: - description: Array of model identifiers (slug or canonical_slug accepted) + description: 'Array of model identifiers (slug or canonical_slug accepted)' example: - - openai/gpt-5.2 + - 'openai/gpt-5.2' items: - type: string + type: 'string' minItems: 1 - nullable: true - type: array + type: + - 'array' + - 'null' allowed_providers: - description: New list of allowed provider IDs + description: 'New list of allowed provider IDs' example: - - openai - - anthropic - - deepseek + - 'openai' + - 'anthropic' + - 'deepseek' items: - type: string + type: 'string' minItems: 1 - nullable: true - type: array + type: + - 'array' + - 'null' content_filter_builtins: - description: >- - Builtin content filters to apply. Set to null to remove. The "flag" action is only supported for "regex-prompt-injection"; PII slugs (email, phone, ssn, credit-card, ip-address, person-name, address) accept "block" or "redact" only. + description: 'Builtin content filters to apply. Set to null to remove. The "flag" action is only supported for "regex-prompt-injection"; PII slugs (email, phone, ssn, credit-card, ip-address, person-name, address) accept "block" or "redact" only.' example: - - action: block - slug: regex-prompt-injection + - action: 'block' + slug: 'regex-prompt-injection' items: $ref: '#/components/schemas/ContentFilterBuiltinEntryInput' - nullable: true - type: array + type: + - 'array' + - 'null' content_filters: - description: Custom regex content filters to apply. Set to null to remove. + description: 'Custom regex content filters to apply. Set to null to remove.' example: null items: $ref: '#/components/schemas/ContentFilterEntry' - nullable: true - type: array + type: + - 'array' + - 'null' description: - description: New description for the guardrail - example: Updated description + description: 'New description for the guardrail' + example: 'Updated description' maxLength: 1000 - nullable: true - type: string + type: + - 'string' + - 'null' enforce_zdr: deprecated: true - description: >- - Deprecated. Use enforce_zdr_anthropic, enforce_zdr_openai, enforce_zdr_google, enforce_zdr_xai, and enforce_zdr_other instead. When provided, its value is copied into any of those per-provider fields that are not explicitly specified on the request. + description: 'Deprecated. Use enforce_zdr_anthropic, enforce_zdr_openai, enforce_zdr_google, enforce_zdr_xai, and enforce_zdr_other instead. When provided, its value is copied into any of those per-provider fields that are not explicitly specified on the request.' example: true - nullable: true - type: boolean + type: + - 'boolean' + - 'null' enforce_zdr_anthropic: - description: Whether to enforce zero data retention for Anthropic models. Falls back to enforce_zdr when not provided. + description: 'Whether to enforce zero data retention for Anthropic models. Falls back to enforce_zdr when not provided.' example: true - nullable: true - type: boolean + type: + - 'boolean' + - 'null' enforce_zdr_google: - description: Whether to enforce zero data retention for Google models. Falls back to enforce_zdr when not provided. + description: 'Whether to enforce zero data retention for Google models. Falls back to enforce_zdr when not provided.' example: true - nullable: true - type: boolean + type: + - 'boolean' + - 'null' enforce_zdr_openai: - description: Whether to enforce zero data retention for OpenAI models. Falls back to enforce_zdr when not provided. + description: 'Whether to enforce zero data retention for OpenAI models. Falls back to enforce_zdr when not provided.' example: true - nullable: true - type: boolean + type: + - 'boolean' + - 'null' enforce_zdr_other: - description: >- - Whether to enforce zero data retention for models that are not from Anthropic, OpenAI, Google, or xAI. Falls back to enforce_zdr when not provided. + description: 'Whether to enforce zero data retention for models that are not from Anthropic, OpenAI, Google, or xAI. Falls back to enforce_zdr when not provided.' example: true - nullable: true - type: boolean + type: + - 'boolean' + - 'null' enforce_zdr_xai: - description: Whether to enforce zero data retention for xAI models. Falls back to enforce_zdr when not provided. + description: 'Whether to enforce zero data retention for xAI models. Falls back to enforce_zdr when not provided.' example: true - nullable: true - type: boolean + type: + - 'boolean' + - 'null' ignored_models: - description: Array of model identifiers to exclude from routing (slug or canonical_slug accepted) + description: 'Array of model identifiers to exclude from routing (slug or canonical_slug accepted)' example: - - openai/gpt-4o-mini + - 'openai/gpt-4o-mini' items: - type: string + type: 'string' minItems: 1 - nullable: true - type: array + type: + - 'array' + - 'null' ignored_providers: - description: List of provider IDs to exclude from routing + description: 'List of provider IDs to exclude from routing' example: - - azure + - 'azure' items: - type: string + type: 'string' minItems: 1 - nullable: true - type: array + type: + - 'array' + - 'null' limit_usd: - description: New spending limit in USD + description: 'New spending limit in USD' example: 75 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' name: - description: New name for the guardrail - example: Updated Guardrail Name + description: 'New name for the guardrail' + example: 'Updated Guardrail Name' maxLength: 200 minLength: 1 - type: string + type: 'string' reset_interval: $ref: '#/components/schemas/GuardrailInterval' - type: object + type: 'object' UpdateGuardrailResponse: example: data: allowed_models: null allowed_providers: - - openai + - 'openai' content_filter_builtins: - - action: redact + - action: 'redact' label: '[EMAIL]' - slug: email + slug: 'email' content_filters: null created_at: '2025-08-24T10:30:00Z' - description: Updated description + description: 'Updated description' enforce_zdr: null enforce_zdr_anthropic: true enforce_zdr_google: true enforce_zdr_openai: true enforce_zdr_other: true enforce_zdr_xai: true - id: 550e8400-e29b-41d4-a716-446655440000 + id: '550e8400-e29b-41d4-a716-446655440000' ignored_models: null ignored_providers: null limit_usd: 75 - name: Updated Guardrail Name - reset_interval: weekly + name: 'Updated Guardrail Name' + reset_interval: 'weekly' updated_at: '2025-08-24T16:00:00Z' - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' properties: data: allOf: - $ref: '#/components/schemas/Guardrail' - - description: The updated guardrail + - description: 'The updated guardrail' required: - - data - type: object + - 'data' + type: 'object' UpdateObservabilityDestinationRequest: example: enabled: false - name: Updated Langfuse + name: 'Updated Langfuse' properties: api_key_hashes: - description: >- - Optional allowlist of OpenRouter API key hashes. `null` clears the filter (all keys). Omitting leaves the current value. Must contain at least one hash if provided. + description: 'Optional allowlist of OpenRouter API key hashes. `null` clears the filter (all keys). Omitting leaves the current value. Must contain at least one hash if provided.' example: null items: - type: string + type: 'string' minItems: 1 - nullable: true - type: array + type: + - 'array' + - 'null' config: - additionalProperties: - nullable: true - description: >- - Provider-specific configuration fields to update. Masked values are ignored; unset fields keep their current value. + additionalProperties: {} + description: 'Provider-specific configuration fields to update. Masked values are ignored; unset fields keep their current value.' example: - baseUrl: https://us.cloud.langfuse.com - publicKey: pk-l...EfGh - secretKey: sk-l...AbCd - type: object + baseUrl: 'https://us.cloud.langfuse.com' + publicKey: 'pk-l...EfGh' + secretKey: 'sk-l...AbCd' + type: 'object' enabled: - description: Whether the destination is enabled. + description: 'Whether the destination is enabled.' example: true - type: boolean + type: 'boolean' filter_rules: allOf: - $ref: '#/components/schemas/ObservabilityFilterRulesConfigNullable' - - description: Optional structured filter rules. `null` clears the rules. Omitting keeps the current value. + - description: 'Optional structured filter rules. `null` clears the rules. Omitting keeps the current value.' name: - description: Human-readable name for the destination. - example: Production Langfuse - type: string + description: 'Human-readable name for the destination.' + example: 'Production Langfuse' + type: 'string' privacy_mode: - description: When true, request/response bodies are not forwarded — only metadata. + description: 'When true, request/response bodies are not forwarded — only metadata.' example: false - type: boolean + type: 'boolean' sampling_rate: - description: Sampling rate between 0.0001 and 1 (1 = 100%). + description: 'Sampling rate between 0.0001 and 1 (1 = 100%).' example: 1 - format: double - type: number - type: object + format: 'double' + type: 'number' + type: 'object' UpdateObservabilityDestinationResponse: example: data: api_key_hashes: null config: - baseUrl: https://us.cloud.langfuse.com - publicKey: pk-l...EfGh - secretKey: sk-l...AbCd + baseUrl: 'https://us.cloud.langfuse.com' + publicKey: 'pk-l...EfGh' + secretKey: 'sk-l...AbCd' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Langfuse + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Langfuse' privacy_mode: false sampling_rate: 1 - type: langfuse + type: 'langfuse' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: data: allOf: - $ref: '#/components/schemas/ObservabilityDestination' - - description: The updated observability destination. + - description: 'The updated observability destination.' required: - - data - type: object + - 'data' + type: 'object' UpdateWorkspaceRequest: example: - name: Updated Workspace - slug: updated-workspace + name: 'Updated Workspace' + slug: 'updated-workspace' properties: default_image_model: - description: Default image model for this workspace - example: openai/dall-e-3 - nullable: true - type: string + description: 'Default image model for this workspace' + example: 'openai/dall-e-3' + type: + - 'string' + - 'null' default_provider_sort: - description: Default provider sort preference (price, throughput, latency, exacto) - example: price - nullable: true - type: string + description: 'Default provider sort preference (price, throughput, latency, exacto)' + example: 'price' + type: + - 'string' + - 'null' default_text_model: - description: Default text model for this workspace - example: openai/gpt-4o - nullable: true - type: string + description: 'Default text model for this workspace' + example: 'openai/gpt-4o' + type: + - 'string' + - 'null' description: - description: New description for the workspace - example: Updated description + description: 'New description for the workspace' + example: 'Updated description' maxLength: 500 - nullable: true - type: string + type: + - 'string' + - 'null' io_logging_api_key_ids: - description: Optional array of API key IDs to filter I/O logging + description: 'Optional array of API key IDs to filter I/O logging' example: null items: - type: integer - nullable: true - type: array + type: 'integer' + type: + - 'array' + - 'null' io_logging_sampling_rate: - description: Sampling rate for I/O logging (0.0001-1) + description: 'Sampling rate for I/O logging (0.0001-1)' example: 1 - format: double - type: number + format: 'double' + type: 'number' is_data_discount_logging_enabled: - description: Whether data discount logging is enabled + description: 'Whether data discount logging is enabled' example: true - type: boolean + type: 'boolean' is_observability_broadcast_enabled: - description: Whether broadcast is enabled + description: 'Whether broadcast is enabled' example: false - type: boolean + type: 'boolean' is_observability_io_logging_enabled: - description: Whether private logging is enabled + description: 'Whether private logging is enabled' example: false - type: boolean + type: 'boolean' name: - description: New name for the workspace - example: Updated Workspace + description: 'New name for the workspace' + example: 'Updated Workspace' maxLength: 100 minLength: 1 - type: string + type: 'string' slug: - description: >- - New URL-friendly slug (lowercase alphanumeric segments separated by single hyphens, no leading/trailing hyphens) - example: updated-workspace + description: 'New URL-friendly slug (lowercase alphanumeric segments separated by single hyphens, no leading/trailing hyphens)' + example: 'updated-workspace' maxLength: 50 minLength: 1 - pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$ - type: string - type: object + pattern: '^[a-z0-9]+(?:-[a-z0-9]+)*$' + type: 'string' + type: 'object' UpdateWorkspaceResponse: example: data: created_at: '2025-08-24T10:30:00Z' - created_by: user_abc123 - default_image_model: openai/dall-e-3 - default_provider_sort: price - default_text_model: openai/gpt-4o - description: Production environment workspace - id: 550e8400-e29b-41d4-a716-446655440000 + created_by: 'user_abc123' + default_image_model: 'openai/dall-e-3' + default_provider_sort: 'price' + default_text_model: 'openai/gpt-4o' + description: 'Production environment workspace' + id: '550e8400-e29b-41d4-a716-446655440000' io_logging_api_key_ids: null io_logging_sampling_rate: 1 is_data_discount_logging_enabled: true is_observability_broadcast_enabled: false is_observability_io_logging_enabled: false - name: Updated Workspace - slug: updated-workspace + name: 'Updated Workspace' + slug: 'updated-workspace' updated_at: '2025-08-25T10:00:00Z' properties: data: allOf: - $ref: '#/components/schemas/Workspace' - - description: The updated workspace + - description: 'The updated workspace' required: - - data - type: object + - 'data' + type: 'object' UpsertWorkspaceBudgetRequest: example: limit_usd: 100 properties: limit_usd: - description: Spending limit in USD. Must be greater than 0. + description: 'Spending limit in USD. Must be greater than 0.' example: 100 - format: double - type: number + format: 'double' + type: 'number' required: - - limit_usd - type: object + - 'limit_usd' + type: 'object' UpsertWorkspaceBudgetResponse: example: data: created_at: '2025-08-24T10:30:00Z' - id: 770e8400-e29b-41d4-a716-446655440000 + id: '770e8400-e29b-41d4-a716-446655440000' limit_usd: 100 - reset_interval: monthly + reset_interval: 'monthly' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: data: allOf: - $ref: '#/components/schemas/WorkspaceBudget' - - description: The created or updated budget + - description: 'The created or updated budget' required: - - data - type: object + - 'data' + type: 'object' URLCitation: example: - content: OpenRouter provides a unified API for accessing LLMs from multiple providers. + content: 'OpenRouter provides a unified API for accessing LLMs from multiple providers.' end_index: 42 start_index: 0 - title: OpenRouter Documentation - type: url_citation - url: https://openrouter.ai/docs + title: 'OpenRouter Documentation' + type: 'url_citation' + url: 'https://openrouter.ai/docs' properties: content: - type: string + type: 'string' end_index: - type: integer + type: 'integer' start_index: - type: integer + type: 'integer' title: - type: string + type: 'string' type: enum: - - url_citation - type: string + - 'url_citation' + type: 'string' url: - type: string - required: - - type - - url - - title - - start_index - - end_index - type: object + type: 'string' + required: + - 'type' + - 'url' + - 'title' + - 'start_index' + - 'end_index' + type: 'object' Usage: - allOf: - - $ref: '#/components/schemas/OpenAIResponsesUsage' - - nullable: true - properties: - cost: - description: Cost of the completion - format: double - nullable: true - type: number - cost_details: - properties: - upstream_inference_cost: - format: double - nullable: true - type: number - upstream_inference_input_cost: - format: double - type: number - upstream_inference_output_cost: - format: double - type: number - required: - - upstream_inference_input_cost - - upstream_inference_output_cost - type: object - is_byok: - description: Whether a request was made using a Bring Your Own Key configuration - type: boolean - server_tool_use_details: - $ref: '#/components/schemas/ServerToolUseDetails' - type: object - description: Token usage information for the response + anyOf: + - allOf: + - $ref: '#/components/schemas/OpenAIResponsesUsage' + - properties: + cost: + description: 'Cost of the completion' + format: 'double' + type: + - 'number' + - 'null' + cost_details: + properties: + upstream_inference_cost: + format: 'double' + type: + - 'number' + - 'null' + upstream_inference_input_cost: + format: 'double' + type: 'number' + upstream_inference_output_cost: + format: 'double' + type: 'number' + required: + - 'upstream_inference_input_cost' + - 'upstream_inference_output_cost' + type: 'object' + is_byok: + description: 'Whether a request was made using a Bring Your Own Key configuration' + type: 'boolean' + server_tool_use_details: + $ref: '#/components/schemas/ServerToolUseDetails' + type: 'object' + - type: 'null' + description: 'Token usage information for the response' example: cost: 0.0012 cost_details: @@ -23038,12 +23177,12 @@ components: example: aspect_ratio: '16:9' duration: 8 - model: google/veo-3.1 - prompt: A serene mountain landscape at sunset - resolution: 720p + model: 'google/veo-3.1' + prompt: 'A serene mountain landscape at sunset' + resolution: '720p' properties: aspect_ratio: - description: Aspect ratio of the generated video + description: 'Aspect ratio of the generated video' enum: - '16:9' - '9:16' @@ -23055,42 +23194,38 @@ components: - '21:9' - '9:21' example: '16:9' - type: string + type: 'string' x-speakeasy-unknown-values: allow callback_url: - description: >- - URL to receive a webhook notification when the video generation job completes. Overrides the workspace-level default callback URL if set. Must be HTTPS. - example: https://example.com/webhook - format: uri - type: string + description: 'URL to receive a webhook notification when the video generation job completes. Overrides the workspace-level default callback URL if set. Must be HTTPS.' + example: 'https://example.com/webhook' + format: 'uri' + type: 'string' duration: - description: Duration of the generated video in seconds + description: 'Duration of the generated video in seconds' example: 8 minimum: 1 - type: integer + type: 'integer' frame_images: - description: >- - Images to use as the first and/or last frame of the generated video. Each image must specify a frame_type of first_frame or last_frame. + description: 'Images to use as the first and/or last frame of the generated video. Each image must specify a frame_type of first_frame or last_frame.' items: $ref: '#/components/schemas/FrameImage' - type: array + type: 'array' generate_audio: - description: >- - Whether to generate audio alongside the video. Defaults to the endpoint's generate_audio capability flag, false if not set. + description: 'Whether to generate audio alongside the video. Defaults to the endpoint''s generate_audio capability flag, false if not set.' example: true - type: boolean + type: 'boolean' input_references: - description: >- - Reference assets to guide video generation. Accepts image, audio, and video references. Audio and video references are only honored by providers that support them (currently BytePlus Seedance 2.0); other providers use image references and ignore the rest. + description: 'Reference assets to guide video generation. Accepts image, audio, and video references. Audio and video references are only honored by providers that support them (currently BytePlus Seedance 2.0); other providers use image references and ignore the rest.' items: $ref: '#/components/schemas/InputReference' - type: array + type: 'array' model: - type: string + type: 'string' prompt: - type: string + type: 'string' provider: - description: Provider-specific passthrough configuration + description: 'Provider-specific passthrough configuration' properties: options: allOf: @@ -23098,94 +23233,93 @@ components: - example: google-vertex: output_config: - effort: low - type: object + effort: 'low' + type: 'object' resolution: - description: Resolution of the generated video - enum: - - 480p - - 720p - - 1080p - - 1K - - 2K - - 4K - example: 720p - type: string + description: 'Resolution of the generated video' + enum: + - '480p' + - '720p' + - '1080p' + - '1K' + - '2K' + - '4K' + example: '720p' + type: 'string' x-speakeasy-unknown-values: allow seed: - description: >- - If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers. - type: integer + description: 'If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers.' + type: 'integer' size: - description: >- - Exact pixel dimensions of the generated video in "WIDTHxHEIGHT" format (e.g. "1280x720"). Interchangeable with resolution + aspect_ratio. - example: 1280x720 - type: string - required: - - prompt - - model - type: object + description: 'Exact pixel dimensions of the generated video in "WIDTHxHEIGHT" format (e.g. "1280x720"). Interchangeable with resolution + aspect_ratio.' + example: '1280x720' + type: 'string' + required: + - 'prompt' + - 'model' + type: 'object' VideoGenerationResponse: example: - generation_id: gen-xyz789 - id: job-abc123 - polling_url: /api/v1/videos/job-abc123 - status: pending + generation_id: 'gen-xyz789' + id: 'job-abc123' + polling_url: '/api/v1/videos/job-abc123' + status: 'pending' properties: error: - type: string + type: 'string' generation_id: - description: The generation ID associated with this video generation job. Available once the job has been processed. - type: string + description: 'The generation ID associated with this video generation job. Available once the job has been processed.' + type: 'string' id: - type: string + type: 'string' polling_url: - type: string + type: 'string' status: enum: - - pending - - in_progress - - completed - - failed - - cancelled - - expired - type: string + - 'pending' + - 'in_progress' + - 'completed' + - 'failed' + - 'cancelled' + - 'expired' + type: 'string' x-speakeasy-unknown-values: allow unsigned_urls: items: - type: string - type: array + type: 'string' + type: 'array' usage: $ref: '#/components/schemas/VideoGenerationUsage' required: - - id - - polling_url - - status - type: object + - 'id' + - 'polling_url' + - 'status' + type: 'object' VideoGenerationUsage: - description: Usage and cost information for the video generation. Available once the job has completed. + description: 'Usage and cost information for the video generation. Available once the job has completed.' example: cost: 0.5 is_byok: false properties: cost: - description: The cost of the video generation in USD. - format: double - nullable: true - type: number + description: 'The cost of the video generation in USD.' + format: 'double' + type: + - 'number' + - 'null' is_byok: - description: Whether the request was made using a Bring Your Own Key configuration. - type: boolean - type: object + description: 'Whether the request was made using a Bring Your Own Key configuration.' + type: 'boolean' + type: 'object' VideoModel: example: allowed_passthrough_parameters: [] - canonical_slug: google/veo-3.1 + canonical_slug: 'google/veo-3.1' created: 1700000000 - description: Google video generation model + description: 'Google video generation model' generate_audio: true - id: google/veo-3.1 - name: Veo 3.1 + id: 'google/veo-3.1' + name: 'Veo 3.1' pricing_skus: generate: '0.50' seed: null @@ -23195,58 +23329,62 @@ components: - 5 - 8 supported_frame_images: - - first_frame - - last_frame + - 'first_frame' + - 'last_frame' supported_resolutions: - - 720p + - '720p' supported_sizes: null properties: allowed_passthrough_parameters: - description: List of parameters that are allowed to be passed through to the provider + description: 'List of parameters that are allowed to be passed through to the provider' items: - type: string - type: array + type: 'string' + type: 'array' canonical_slug: - description: Canonical slug for the model - example: openai/gpt-4 - type: string + description: 'Canonical slug for the model' + example: 'openai/gpt-4' + type: 'string' created: - description: Unix timestamp of when the model was created + description: 'Unix timestamp of when the model was created' example: 1692901234 - type: integer + type: 'integer' description: - description: Description of the model - example: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy. - type: string + description: 'Description of the model' + example: 'GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.' + type: 'string' generate_audio: - description: Whether the model supports generating audio alongside video - nullable: true - type: boolean + description: 'Whether the model supports generating audio alongside video' + type: + - 'boolean' + - 'null' hugging_face_id: - description: Hugging Face model identifier, if applicable - example: microsoft/DialoGPT-medium - nullable: true - type: string + description: 'Hugging Face model identifier, if applicable' + example: 'microsoft/DialoGPT-medium' + type: + - 'string' + - 'null' id: - description: Unique identifier for the model - example: openai/gpt-4 - type: string + description: 'Unique identifier for the model' + example: 'openai/gpt-4' + type: 'string' name: - description: Display name of the model - example: GPT-4 - type: string + description: 'Display name of the model' + example: 'GPT-4' + type: 'string' pricing_skus: additionalProperties: - type: string - description: Pricing SKUs with provider prefix stripped, values as strings - nullable: true - type: object + type: 'string' + description: 'Pricing SKUs with provider prefix stripped, values as strings' + type: + - 'object' + - 'null' seed: - description: Whether the model supports deterministic generation via seed parameter - nullable: true - type: boolean + description: 'Whether the model supports deterministic generation via seed parameter' + type: + - 'boolean' + - 'null' supported_aspect_ratios: - description: Supported output aspect ratios + description: 'Supported output aspect ratios' items: enum: - '16:9' @@ -23258,108 +23396,113 @@ components: - '2:3' - '21:9' - '9:21' - type: string + type: 'string' x-speakeasy-unknown-values: allow - nullable: true - type: array + type: + - 'array' + - 'null' supported_durations: - description: Supported video durations in seconds + description: 'Supported video durations in seconds' items: - type: integer - nullable: true - type: array + type: 'integer' + type: + - 'array' + - 'null' supported_frame_images: - description: Supported frame image types (e.g. first_frame, last_frame) + description: 'Supported frame image types (e.g. first_frame, last_frame)' items: enum: - - first_frame - - last_frame - type: string + - 'first_frame' + - 'last_frame' + type: 'string' x-speakeasy-unknown-values: allow - nullable: true - type: array + type: + - 'array' + - 'null' supported_resolutions: - description: Supported output resolutions + description: 'Supported output resolutions' items: enum: - - 480p - - 720p - - 1080p - - 1K - - 2K - - 4K - type: string + - '480p' + - '720p' + - '1080p' + - '1K' + - '2K' + - '4K' + type: 'string' x-speakeasy-unknown-values: allow - nullable: true - type: array + type: + - 'array' + - 'null' supported_sizes: - description: Supported output sizes (width x height) + description: 'Supported output sizes (width x height)' items: enum: - - 480x480 - - 480x640 - - 480x720 - - 480x854 - - 480x1120 - - 640x480 - - 720x480 - - 720x720 - - 720x960 - - 720x1080 - - 720x1280 - - 720x1680 - - 854x480 - - 960x720 - - 1080x720 - - 1080x1080 - - 1080x1440 - - 1080x1620 - - 1080x1920 - - 1080x2520 - - 1120x480 - - 1280x720 - - 1440x1080 - - 1620x1080 - - 1680x720 - - 1920x1080 - - 2160x2160 - - 2160x2880 - - 2160x3240 - - 2160x3840 - - 2160x5040 - - 2520x1080 - - 2880x2160 - - 3240x2160 - - 3840x2160 - - 5040x2160 - type: string + - '480x480' + - '480x640' + - '480x720' + - '480x854' + - '480x1120' + - '640x480' + - '720x480' + - '720x720' + - '720x960' + - '720x1080' + - '720x1280' + - '720x1680' + - '854x480' + - '960x720' + - '1080x720' + - '1080x1080' + - '1080x1440' + - '1080x1620' + - '1080x1920' + - '1080x2520' + - '1120x480' + - '1280x720' + - '1440x1080' + - '1620x1080' + - '1680x720' + - '1920x1080' + - '2160x2160' + - '2160x2880' + - '2160x3240' + - '2160x3840' + - '2160x5040' + - '2520x1080' + - '2880x2160' + - '3240x2160' + - '3840x2160' + - '5040x2160' + type: 'string' x-speakeasy-unknown-values: allow - nullable: true - type: array - required: - - id - - canonical_slug - - name - - created - - supported_resolutions - - supported_aspect_ratios - - supported_sizes - - supported_durations - - supported_frame_images - - generate_audio - - seed - - allowed_passthrough_parameters - type: object + type: + - 'array' + - 'null' + required: + - 'id' + - 'canonical_slug' + - 'name' + - 'created' + - 'supported_resolutions' + - 'supported_aspect_ratios' + - 'supported_sizes' + - 'supported_durations' + - 'supported_frame_images' + - 'generate_audio' + - 'seed' + - 'allowed_passthrough_parameters' + type: 'object' VideoModelsListResponse: example: data: - allowed_passthrough_parameters: [] - canonical_slug: google/veo-3.1 + canonical_slug: 'google/veo-3.1' created: 1700000000 - description: Google video generation model + description: 'Google video generation model' generate_audio: true - id: google/veo-3.1 - name: Veo 3.1 + id: 'google/veo-3.1' + name: 'Veo 3.1' pricing_skus: generate: '0.50' seed: null @@ -23369,702 +23512,704 @@ components: - 5 - 8 supported_frame_images: - - first_frame - - last_frame + - 'first_frame' + - 'last_frame' supported_resolutions: - - 720p + - '720p' supported_sizes: null properties: data: items: $ref: '#/components/schemas/VideoModel' - type: array + type: 'array' required: - - data - type: object + - 'data' + type: 'object' WebFetchEngineEnum: - description: >- - Which fetch engine to use. "auto" (default) uses native if the provider supports it, otherwise Exa. "native" forces the provider's built-in fetch. "exa" uses Exa Contents API. "openrouter" uses direct HTTP fetch. "firecrawl" uses Firecrawl scrape (requires BYOK). "parallel" uses the Parallel extract API. + description: 'Which fetch engine to use. "auto" (default) uses native if the provider supports it, otherwise Exa. "native" forces the provider''s built-in fetch. "exa" uses Exa Contents API. "openrouter" uses direct HTTP fetch. "firecrawl" uses Firecrawl scrape (requires BYOK). "parallel" uses the Parallel extract API.' enum: - - auto - - native - - openrouter - - exa - - parallel - - firecrawl - example: auto - type: string + - 'auto' + - 'native' + - 'openrouter' + - 'exa' + - 'parallel' + - 'firecrawl' + example: 'auto' + type: 'string' x-speakeasy-unknown-values: allow WebFetchPlugin: example: - id: web-fetch + id: 'web-fetch' max_uses: 10 properties: allowed_domains: - description: Only fetch from these domains. + description: 'Only fetch from these domains.' items: - type: string - type: array + type: 'string' + type: 'array' blocked_domains: - description: Never fetch from these domains. + description: 'Never fetch from these domains.' items: - type: string - type: array + type: 'string' + type: 'array' id: enum: - - web-fetch - type: string + - 'web-fetch' + type: 'string' max_content_tokens: - description: Maximum content length in approximate tokens. Content exceeding this limit is truncated. - type: integer + description: 'Maximum content length in approximate tokens. Content exceeding this limit is truncated.' + type: 'integer' max_uses: - description: Maximum number of web fetches per request. Once exceeded, the tool returns an error. - type: integer + description: 'Maximum number of web fetches per request. Once exceeded, the tool returns an error.' + type: 'integer' required: - - id - type: object + - 'id' + type: 'object' WebFetchServerTool: description: 'OpenRouter built-in server tool: fetches full content from a URL (web page or PDF)' example: parameters: max_uses: 10 - type: openrouter:web_fetch + type: 'openrouter:web_fetch' properties: parameters: $ref: '#/components/schemas/WebFetchServerToolConfig' type: enum: - - openrouter:web_fetch - type: string + - 'openrouter:web_fetch' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' WebFetchServerToolConfig: - description: Configuration for the openrouter:web_fetch server tool + description: 'Configuration for the openrouter:web_fetch server tool' example: max_content_tokens: 100000 max_uses: 10 properties: allowed_domains: - description: Only fetch from these domains. + description: 'Only fetch from these domains.' items: - type: string - type: array + type: 'string' + type: 'array' blocked_domains: - description: Never fetch from these domains. + description: 'Never fetch from these domains.' items: - type: string - type: array + type: 'string' + type: 'array' engine: $ref: '#/components/schemas/WebFetchEngineEnum' max_content_tokens: - description: Maximum content length in approximate tokens. Content exceeding this limit is truncated. + description: 'Maximum content length in approximate tokens. Content exceeding this limit is truncated.' example: 100000 - type: integer + type: 'integer' max_uses: - description: Maximum number of web fetches per request. Once exceeded, the tool returns an error. + description: 'Maximum number of web fetches per request. Once exceeded, the tool returns an error.' example: 10 - type: integer - type: object + type: 'integer' + type: 'object' WebSearchCallCompletedEvent: allOf: - $ref: '#/components/schemas/OpenAIResponsesSearchCompleted' - properties: {} - type: object - description: Web search call completed + type: 'object' + description: 'Web search call completed' example: - item_id: ws-123 + item_id: 'ws-123' output_index: 0 sequence_number: 3 - type: response.web_search_call.completed + type: 'response.web_search_call.completed' WebSearchCallInProgressEvent: allOf: - $ref: '#/components/schemas/OpenAIResponsesWebSearchCallInProgress' - properties: {} - type: object - description: Web search call in progress + type: 'object' + description: 'Web search call in progress' example: - item_id: ws-123 + item_id: 'ws-123' output_index: 0 sequence_number: 1 - type: response.web_search_call.in_progress + type: 'response.web_search_call.in_progress' WebSearchCallSearchingEvent: allOf: - $ref: '#/components/schemas/OpenAIResponsesWebSearchCallSearching' - properties: {} - type: object - description: Web search call is searching + type: 'object' + description: 'Web search call is searching' example: - item_id: ws-123 + item_id: 'ws-123' output_index: 0 sequence_number: 2 - type: response.web_search_call.searching + type: 'response.web_search_call.searching' WebSearchConfig: example: max_results: 5 - search_context_size: medium + search_context_size: 'medium' properties: allowed_domains: - description: >- - Limit search results to these domains. Supported by Exa, Firecrawl, Parallel, Perplexity, and most native providers (Anthropic, OpenAI, xAI). Cannot be used with excluded_domains. + description: 'Limit search results to these domains. Supported by Exa, Firecrawl, Parallel, Perplexity, and most native providers (Anthropic, OpenAI, xAI). Cannot be used with excluded_domains.' items: - type: string - type: array + type: 'string' + type: 'array' engine: $ref: '#/components/schemas/WebSearchEngineEnum' excluded_domains: - description: >- - Exclude search results from these domains. Supported by Exa, Firecrawl, Parallel, Perplexity, Anthropic, and xAI. Not supported with OpenAI (silently ignored). Cannot be used with allowed_domains. + description: 'Exclude search results from these domains. Supported by Exa, Firecrawl, Parallel, Perplexity, Anthropic, and xAI. Not supported with OpenAI (silently ignored). Cannot be used with allowed_domains.' items: - type: string - type: array + type: 'string' + type: 'array' max_characters: - description: >- - Exact maximum number of characters of content per search result. Applies to the Exa, Parallel, and Perplexity engines; ignored with native provider search and Firecrawl. For Exa, caps highlight content per result. For Parallel, caps excerpt content per result (default 1,500 when omitted). For Perplexity, maps to the native `max_tokens_per_page` parameter (converted from characters to tokens) and trims the response to the exact character cap. When both `max_characters` and `search_context_size` are set, `max_characters` takes precedence. When omitted, falls back to `search_context_size` mapping (Exa) or engine defaults (Parallel, Perplexity). + description: 'Exact maximum number of characters of content per search result. Applies to the Exa, Parallel, and Perplexity engines; ignored with native provider search and Firecrawl. For Exa, caps highlight content per result. For Parallel, caps excerpt content per result (default 1,500 when omitted). For Perplexity, maps to the native `max_tokens_per_page` parameter (converted from characters to tokens) and trims the response to the exact character cap. When both `max_characters` and `search_context_size` are set, `max_characters` takes precedence. When omitted, falls back to `search_context_size` mapping (Exa) or engine defaults (Parallel, Perplexity).' example: 2000 - type: integer + type: 'integer' max_results: - description: >- - Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped. + description: 'Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped.' example: 5 - type: integer + type: 'integer' max_total_results: - description: >- - Maximum total number of search results across all search calls in a single request. Once this limit is reached, the tool will stop returning new results. Useful for controlling cost and context size in agentic loops. Defaults to 50 when not specified. + description: 'Maximum total number of search results across all search calls in a single request. Once this limit is reached, the tool will stop returning new results. Useful for controlling cost and context size in agentic loops. Defaults to 50 when not specified.' example: 50 - type: integer + type: 'integer' search_context_size: $ref: '#/components/schemas/SearchQualityLevel' user_location: $ref: '#/components/schemas/WebSearchUserLocationServerTool' - type: object + type: 'object' WebSearchDomainFilter: example: allowed_domains: - - example.com + - 'example.com' excluded_domains: - - spam.com - nullable: true + - 'spam.com' properties: allowed_domains: items: - type: string - nullable: true - type: array + type: 'string' + type: + - 'array' + - 'null' excluded_domains: items: - type: string - nullable: true - type: array - type: object + type: 'string' + type: + - 'array' + - 'null' + type: + - 'object' + - 'null' WebSearchEngine: - description: The search engine to use for web search. + description: 'The search engine to use for web search.' enum: - - native - - exa - - firecrawl - - parallel - - perplexity - example: exa - type: string + - 'native' + - 'exa' + - 'firecrawl' + - 'parallel' + - 'perplexity' + example: 'exa' + type: 'string' x-speakeasy-unknown-values: allow WebSearchEngineEnum: - description: >- - Which search engine to use. "auto" (default) uses native if the provider supports it, otherwise Exa. "native" forces the provider's built-in search. "exa" forces the Exa search API. "firecrawl" uses Firecrawl (requires BYOK). "parallel" uses the Parallel search API. "perplexity" uses the Perplexity Search API (raw ranked results). + description: 'Which search engine to use. "auto" (default) uses native if the provider supports it, otherwise Exa. "native" forces the provider''s built-in search. "exa" forces the Exa search API. "firecrawl" uses Firecrawl (requires BYOK). "parallel" uses the Parallel search API. "perplexity" uses the Perplexity Search API (raw ranked results).' enum: - - native - - exa - - parallel - - firecrawl - - perplexity - - auto - example: auto - type: string + - 'native' + - 'exa' + - 'parallel' + - 'firecrawl' + - 'perplexity' + - 'auto' + example: 'auto' + type: 'string' x-speakeasy-unknown-values: allow WebSearchPlugin: example: enabled: true - id: web + id: 'web' max_results: 5 properties: enabled: - description: Set to false to disable the web-search plugin for this request. Defaults to true. - type: boolean + description: 'Set to false to disable the web-search plugin for this request. Defaults to true.' + type: 'boolean' engine: $ref: '#/components/schemas/WebSearchEngine' exclude_domains: - description: >- - A list of domains to exclude from web search results. Supports wildcards (e.g. "*.substack.com") and path filtering (e.g. "openai.com/blog"). + description: 'A list of domains to exclude from web search results. Supports wildcards (e.g. "*.substack.com") and path filtering (e.g. "openai.com/blog").' example: - - example.com + - 'example.com' - '*.substack.com' - - openai.com/blog + - 'openai.com/blog' items: - type: string - type: array + type: 'string' + type: 'array' id: enum: - - web - type: string + - 'web' + type: 'string' include_domains: - description: >- - A list of domains to restrict web search results to. Supports wildcards (e.g. "*.substack.com") and path filtering (e.g. "openai.com/blog"). + description: 'A list of domains to restrict web search results to. Supports wildcards (e.g. "*.substack.com") and path filtering (e.g. "openai.com/blog").' example: - - example.com + - 'example.com' - '*.substack.com' - - openai.com/blog + - 'openai.com/blog' items: - type: string - type: array + type: 'string' + type: 'array' max_results: - type: integer + type: 'integer' max_uses: - description: >- - Maximum number of times the model can invoke web search in a single turn. Passed through to native providers that support it (e.g. Anthropic). - type: integer + description: 'Maximum number of times the model can invoke web search in a single turn. Passed through to native providers that support it (e.g. Anthropic).' + type: 'integer' search_prompt: - type: string + type: 'string' user_location: allOf: - $ref: '#/components/schemas/WebSearchUserLocation' - - description: >- - Approximate user location for location-biased search results. Passed through to native providers that support it (e.g. Anthropic). - example: - city: San Francisco - country: US - region: California - timezone: America/Los_Angeles - type: approximate + - description: 'Approximate user location for location-biased search results. Passed through to native providers that support it (e.g. Anthropic).' + example: + city: 'San Francisco' + country: 'US' + region: 'California' + timezone: 'America/Los_Angeles' + type: 'approximate' required: - - type + - 'type' required: - - id - type: object + - 'id' + type: 'object' WebSearchServerTool: - description: Web search tool configuration (2025-08-26 version) + description: 'Web search tool configuration (2025-08-26 version)' example: - engine: auto + engine: 'auto' filters: allowed_domains: - - example.com - type: web_search_2025_08_26 + - 'example.com' + type: 'web_search_2025_08_26' properties: engine: $ref: '#/components/schemas/WebSearchEngineEnum' filters: $ref: '#/components/schemas/WebSearchDomainFilter' max_results: - description: >- - Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped. + description: 'Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped.' example: 5 - type: integer + type: 'integer' search_context_size: $ref: '#/components/schemas/SearchContextSizeEnum' type: enum: - - web_search_2025_08_26 - type: string + - 'web_search_2025_08_26' + type: 'string' user_location: $ref: '#/components/schemas/WebSearchUserLocation' required: - - type - type: object + - 'type' + type: 'object' WebSearchServerTool_OpenRouter: description: 'OpenRouter built-in server tool: searches the web for current information' example: parameters: max_results: 5 - type: openrouter:web_search + type: 'openrouter:web_search' properties: parameters: $ref: '#/components/schemas/WebSearchServerToolConfig' type: enum: - - openrouter:web_search - type: string + - 'openrouter:web_search' + type: 'string' required: - - type - type: object + - 'type' + type: 'object' WebSearchServerToolConfig: - description: Configuration for the openrouter:web_search server tool + description: 'Configuration for the openrouter:web_search server tool' example: max_results: 5 - search_context_size: medium + search_context_size: 'medium' properties: allowed_domains: - description: >- - Limit search results to these domains. Supported by Exa, Firecrawl, Parallel, Perplexity, and most native providers (Anthropic, OpenAI, xAI). Cannot be used with excluded_domains. + description: 'Limit search results to these domains. Supported by Exa, Firecrawl, Parallel, Perplexity, and most native providers (Anthropic, OpenAI, xAI). Cannot be used with excluded_domains.' items: - type: string - type: array + type: 'string' + type: 'array' engine: $ref: '#/components/schemas/WebSearchEngineEnum' excluded_domains: - description: >- - Exclude search results from these domains. Supported by Exa, Firecrawl, Parallel, Perplexity, Anthropic, and xAI. Not supported with OpenAI (silently ignored). Cannot be used with allowed_domains. + description: 'Exclude search results from these domains. Supported by Exa, Firecrawl, Parallel, Perplexity, Anthropic, and xAI. Not supported with OpenAI (silently ignored). Cannot be used with allowed_domains.' items: - type: string - type: array + type: 'string' + type: 'array' max_characters: - description: >- - Exact maximum number of characters of content per search result. Applies to the Exa, Parallel, and Perplexity engines; ignored with native provider search and Firecrawl. For Exa, caps highlight content per result. For Parallel, caps excerpt content per result (default 1,500 when omitted). For Perplexity, maps to the native `max_tokens_per_page` parameter (converted from characters to tokens) and trims the response to the exact character cap. When both `max_characters` and `search_context_size` are set, `max_characters` takes precedence. When omitted, falls back to `search_context_size` mapping (Exa) or engine defaults (Parallel, Perplexity). + description: 'Exact maximum number of characters of content per search result. Applies to the Exa, Parallel, and Perplexity engines; ignored with native provider search and Firecrawl. For Exa, caps highlight content per result. For Parallel, caps excerpt content per result (default 1,500 when omitted). For Perplexity, maps to the native `max_tokens_per_page` parameter (converted from characters to tokens) and trims the response to the exact character cap. When both `max_characters` and `search_context_size` are set, `max_characters` takes precedence. When omitted, falls back to `search_context_size` mapping (Exa) or engine defaults (Parallel, Perplexity).' example: 2000 - type: integer + type: 'integer' max_results: - description: >- - Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped. + description: 'Maximum number of search results to return per search call. Defaults to 5. Applies to Exa, Firecrawl, Parallel, and Perplexity engines; ignored with native provider search. Perplexity supports a maximum of 20; values above 20 are clamped.' example: 5 - type: integer + type: 'integer' max_total_results: - description: >- - Maximum total number of search results across all search calls in a single request. Once this limit is reached, the tool will stop returning new results. Useful for controlling cost and context size in agentic loops. Defaults to 50 when not specified. + description: 'Maximum total number of search results across all search calls in a single request. Once this limit is reached, the tool will stop returning new results. Useful for controlling cost and context size in agentic loops. Defaults to 50 when not specified.' example: 50 - type: integer + type: 'integer' search_context_size: $ref: '#/components/schemas/SearchQualityLevel' user_location: $ref: '#/components/schemas/WebSearchUserLocationServerTool' - type: object + type: 'object' WebSearchSource: example: - type: url - url: https://example.com/article + type: 'url' + url: 'https://example.com/article' properties: type: enum: - - url - type: string + - 'url' + type: 'string' url: - type: string + type: 'string' required: - - type - - url - type: object + - 'type' + - 'url' + type: 'object' WebSearchStatus: enum: - - completed - - searching - - in_progress - - failed - example: completed - type: string + - 'completed' + - 'searching' + - 'in_progress' + - 'failed' + example: 'completed' + type: 'string' x-speakeasy-unknown-values: allow WebSearchUserLocation: - description: User location information for web search + description: 'User location information for web search' example: - city: San Francisco - country: USA - region: California - timezone: America/Los_Angeles - type: approximate - nullable: true + city: 'San Francisco' + country: 'USA' + region: 'California' + timezone: 'America/Los_Angeles' + type: 'approximate' properties: city: - nullable: true - type: string + type: + - 'string' + - 'null' country: - nullable: true - type: string + type: + - 'string' + - 'null' region: - nullable: true - type: string + type: + - 'string' + - 'null' timezone: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - approximate - type: string - type: object + - 'approximate' + type: 'string' + type: + - 'object' + - 'null' WebSearchUserLocationServerTool: - description: Approximate user location for location-biased results. + description: 'Approximate user location for location-biased results.' example: - city: San Francisco - country: US - region: California - timezone: America/Los_Angeles - type: approximate + city: 'San Francisco' + country: 'US' + region: 'California' + timezone: 'America/Los_Angeles' + type: 'approximate' properties: city: - nullable: true - type: string + type: + - 'string' + - 'null' country: - nullable: true - type: string + type: + - 'string' + - 'null' region: - nullable: true - type: string + type: + - 'string' + - 'null' timezone: - nullable: true - type: string + type: + - 'string' + - 'null' type: enum: - - approximate - type: string - type: object + - 'approximate' + type: 'string' + type: 'object' Workspace: example: created_at: '2025-08-24T10:30:00Z' - created_by: user_abc123 - default_image_model: openai/dall-e-3 - default_provider_sort: price - default_text_model: openai/gpt-4o - description: Production environment workspace - id: 550e8400-e29b-41d4-a716-446655440000 + created_by: 'user_abc123' + default_image_model: 'openai/dall-e-3' + default_provider_sort: 'price' + default_text_model: 'openai/gpt-4o' + description: 'Production environment workspace' + id: '550e8400-e29b-41d4-a716-446655440000' io_logging_api_key_ids: null io_logging_sampling_rate: 1 is_data_discount_logging_enabled: true is_observability_broadcast_enabled: false is_observability_io_logging_enabled: false - name: Production - slug: production + name: 'Production' + slug: 'production' updated_at: '2025-08-24T15:45:00Z' properties: created_at: - description: ISO 8601 timestamp of when the workspace was created + description: 'ISO 8601 timestamp of when the workspace was created' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' created_by: - description: User ID of the workspace creator - example: user_abc123 - nullable: true - type: string + description: 'User ID of the workspace creator' + example: 'user_abc123' + type: + - 'string' + - 'null' default_image_model: - description: Default image model for this workspace - example: openai/dall-e-3 - nullable: true - type: string + description: 'Default image model for this workspace' + example: 'openai/dall-e-3' + type: + - 'string' + - 'null' default_provider_sort: - description: Default provider sort preference (price, throughput, latency, exacto) - example: price - nullable: true - type: string + description: 'Default provider sort preference (price, throughput, latency, exacto)' + example: 'price' + type: + - 'string' + - 'null' default_text_model: - description: Default text model for this workspace - example: openai/gpt-4o - nullable: true - type: string + description: 'Default text model for this workspace' + example: 'openai/gpt-4o' + type: + - 'string' + - 'null' description: - description: Description of the workspace - example: Production environment workspace - nullable: true - type: string + description: 'Description of the workspace' + example: 'Production environment workspace' + type: + - 'string' + - 'null' id: - description: Unique identifier for the workspace - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string + description: 'Unique identifier for the workspace' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' io_logging_api_key_ids: - description: Optional array of API key IDs to filter I/O logging. Null means all keys are logged. + description: 'Optional array of API key IDs to filter I/O logging. Null means all keys are logged.' example: null items: - type: integer - nullable: true - type: array + type: 'integer' + type: + - 'array' + - 'null' io_logging_sampling_rate: - description: Sampling rate for I/O logging (0.0001-1). 1 means 100% of requests are logged. + description: 'Sampling rate for I/O logging (0.0001-1). 1 means 100% of requests are logged.' example: 1 - format: double - type: number + format: 'double' + type: 'number' is_data_discount_logging_enabled: - description: Whether data discount logging is enabled for this workspace + description: 'Whether data discount logging is enabled for this workspace' example: true - type: boolean + type: 'boolean' is_observability_broadcast_enabled: - description: Whether broadcast is enabled for this workspace + description: 'Whether broadcast is enabled for this workspace' example: false - type: boolean + type: 'boolean' is_observability_io_logging_enabled: - description: Whether private logging is enabled for this workspace + description: 'Whether private logging is enabled for this workspace' example: false - type: boolean + type: 'boolean' name: - description: Name of the workspace - example: Production - type: string + description: 'Name of the workspace' + example: 'Production' + type: 'string' slug: - description: URL-friendly slug for the workspace - example: production - type: string + description: 'URL-friendly slug for the workspace' + example: 'production' + type: 'string' updated_at: - description: ISO 8601 timestamp of when the workspace was last updated + description: 'ISO 8601 timestamp of when the workspace was last updated' example: '2025-08-24T15:45:00Z' - nullable: true - type: string - required: - - id - - name - - slug - - description - - default_text_model - - default_image_model - - default_provider_sort - - is_observability_io_logging_enabled - - is_observability_broadcast_enabled - - is_data_discount_logging_enabled - - io_logging_sampling_rate - - io_logging_api_key_ids - - created_at - - updated_at - - created_by - type: object + type: + - 'string' + - 'null' + required: + - 'id' + - 'name' + - 'slug' + - 'description' + - 'default_text_model' + - 'default_image_model' + - 'default_provider_sort' + - 'is_observability_io_logging_enabled' + - 'is_observability_broadcast_enabled' + - 'is_data_discount_logging_enabled' + - 'io_logging_sampling_rate' + - 'io_logging_api_key_ids' + - 'created_at' + - 'updated_at' + - 'created_by' + type: 'object' WorkspaceBudget: example: created_at: '2025-08-24T10:30:00Z' - id: 770e8400-e29b-41d4-a716-446655440000 + id: '770e8400-e29b-41d4-a716-446655440000' limit_usd: 100 - reset_interval: monthly + reset_interval: 'monthly' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: created_at: - description: ISO 8601 timestamp of when the budget was created + description: 'ISO 8601 timestamp of when the budget was created' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' id: - description: Unique identifier for the budget - example: 770e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string + description: 'Unique identifier for the budget' + example: '770e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' limit_usd: - description: Spending limit in USD for this interval + description: 'Spending limit in USD for this interval' example: 100 - format: double - type: number + format: 'double' + type: 'number' reset_interval: - description: Interval at which spend resets. Null means a lifetime (one-time) budget. + description: 'Interval at which spend resets. Null means a lifetime (one-time) budget.' enum: - - daily - - weekly - - monthly + - 'daily' + - 'weekly' + - 'monthly' - null - example: monthly - nullable: true - type: string + example: 'monthly' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow updated_at: - description: ISO 8601 timestamp of when the budget was last updated + description: 'ISO 8601 timestamp of when the budget was last updated' example: '2025-08-24T15:45:00Z' - type: string + type: 'string' workspace_id: - description: ID of the workspace the budget belongs to - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - limit_usd - - reset_interval - - created_at - - updated_at - type: object + description: 'ID of the workspace the budget belongs to' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'limit_usd' + - 'reset_interval' + - 'created_at' + - 'updated_at' + type: 'object' WorkspaceBudgetInterval: - description: Budget reset interval. Use "lifetime" for a one-time budget that never resets. + description: 'Budget reset interval. Use "lifetime" for a one-time budget that never resets.' enum: - - daily - - weekly - - monthly - - lifetime - example: monthly - type: string + - 'daily' + - 'weekly' + - 'monthly' + - 'lifetime' + example: 'monthly' + type: 'string' x-speakeasy-unknown-values: allow WorkspaceMember: example: created_at: '2025-08-24T10:30:00Z' - id: 660e8400-e29b-41d4-a716-446655440000 - role: member - user_id: user_abc123 - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + id: '660e8400-e29b-41d4-a716-446655440000' + role: 'member' + user_id: 'user_abc123' + workspace_id: '550e8400-e29b-41d4-a716-446655440000' properties: created_at: - description: ISO 8601 timestamp of when the membership was created + description: 'ISO 8601 timestamp of when the membership was created' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' id: - description: Unique identifier for the workspace membership - example: 660e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string + description: 'Unique identifier for the workspace membership' + example: '660e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' role: - description: Role of the member in the workspace + description: 'Role of the member in the workspace' enum: - - admin - - member - example: member - type: string + - 'admin' + - 'member' + example: 'member' + type: 'string' x-speakeasy-unknown-values: allow user_id: - description: Clerk user ID of the member - example: user_abc123 - type: string + description: 'Clerk user ID of the member' + example: 'user_abc123' + type: 'string' workspace_id: - description: ID of the workspace - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - required: - - id - - workspace_id - - user_id - - role - - created_at - type: object + description: 'ID of the workspace' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + required: + - 'id' + - 'workspace_id' + - 'user_id' + - 'role' + - 'created_at' + type: 'object' securitySchemes: apiKey: - description: API key as bearer token in Authorization header - scheme: bearer - type: http + description: 'API key as bearer token in Authorization header' + scheme: 'bearer' + type: 'http' bearer: - description: API key as bearer token in Authorization header - scheme: bearer - type: http + description: 'API key as bearer token in Authorization header' + scheme: 'bearer' + type: 'http' externalDocs: - description: OpenRouter Documentation - url: https://openrouter.ai/docs + description: 'OpenRouter Documentation' + url: 'https://openrouter.ai/docs' info: contact: - email: support@openrouter.ai - name: OpenRouter Support - url: https://openrouter.ai/docs - description: OpenAI-compatible API with additional OpenRouter features + 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 -openapi: 3.1.0 + name: 'MIT' + url: 'https://opensource.org/licenses/MIT' + title: 'OpenRouter API' + version: '1.0.0' +openapi: '3.1.0' paths: /activity: get: - description: >- - Returns user activity data grouped by endpoint for the last 30 (completed) UTC days. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: getUserActivity + description: 'Returns user activity data grouped by endpoint for the last 30 (completed) UTC days. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'getUserActivity' parameters: - - description: Filter by a single UTC date in the last 30 days (YYYY-MM-DD format). - in: query - name: date + - description: 'Filter by a single UTC date in the last 30 days (YYYY-MM-DD format).' + in: 'query' + name: 'date' required: false schema: - description: Filter by a single UTC date in the last 30 days (YYYY-MM-DD format). + description: 'Filter by a single UTC date in the last 30 days (YYYY-MM-DD format).' example: '2025-08-24' - type: string - - description: Filter by API key hash (SHA-256 hex string, as returned by the keys API). - in: query - name: api_key_hash + type: 'string' + - description: 'Filter by API key hash (SHA-256 hex string, as returned by the keys API).' + in: 'query' + name: 'api_key_hash' required: false schema: - description: Filter by API key hash (SHA-256 hex string, as returned by the keys API). - example: abc123def456... - type: string - - description: Filter by org member user ID. Only applicable for organization accounts. - in: query - name: user_id + description: 'Filter by API key hash (SHA-256 hex string, as returned by the keys API).' + example: 'abc123def456...' + type: 'string' + - description: 'Filter by org member user ID. Only applicable for organization accounts.' + in: 'query' + name: 'user_id' required: false schema: - description: Filter by org member user ID. Only applicable for organization accounts. - example: user_abc123 - type: string + description: 'Filter by org member user ID. Only applicable for organization accounts.' + example: 'user_abc123' + type: 'string' responses: '200': content: @@ -24074,79 +24219,78 @@ paths: - byok_usage_inference: 0.012 completion_tokens: 125 date: '2025-08-24' - endpoint_id: 550e8400-e29b-41d4-a716-446655440000 - model: openai/gpt-4.1 - model_permaslug: openai/gpt-4.1-2025-04-14 + endpoint_id: '550e8400-e29b-41d4-a716-446655440000' + model: 'openai/gpt-4.1' + model_permaslug: 'openai/gpt-4.1-2025-04-14' prompt_tokens: 50 - provider_name: OpenAI + provider_name: 'OpenAI' reasoning_tokens: 25 requests: 5 usage: 0.015 schema: $ref: '#/components/schemas/ActivityResponse' - description: Returns user activity data grouped by endpoint + description: 'Returns user activity data grouped by endpoint' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Get user activity grouped by endpoint + description: 'Internal Server Error - Unexpected server error' + summary: 'Get user activity grouped by endpoint' tags: - - Analytics + - 'Analytics' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /analytics/meta: get: - description: >- - Returns the available metrics, dimensions, filter operators, and granularities for the analytics query endpoint. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: getAnalyticsMeta + description: 'Returns the available metrics, dimensions, filter operators, and granularities for the analytics query endpoint. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'getAnalyticsMeta' responses: '200': content: @@ -24154,19 +24298,19 @@ paths: example: data: dimensions: - - display_label: Model - name: model + - display_label: 'Model' + name: 'model' granularities: - - display_label: Day - name: day + - display_label: 'Day' + name: 'day' metrics: - - display_format: number - display_label: Request Count + - display_format: 'number' + display_label: 'Request Count' is_rate: false - name: request_count + name: 'request_count' operators: - - name: eq - value_type: scalar + - name: 'eq' + value_type: 'scalar' schema: properties: data: @@ -24175,331 +24319,319 @@ paths: items: properties: display_label: - description: Human-readable label - example: Model - type: string + description: 'Human-readable label' + example: 'Model' + type: 'string' name: - description: Dimension identifier used in query requests - example: model - type: string + description: 'Dimension identifier used in query requests' + example: 'model' + type: 'string' required: - - name - - display_label - type: object - type: array + - 'name' + - 'display_label' + type: 'object' + type: 'array' granularities: items: properties: display_label: - description: Human-readable label - example: Day - type: string + description: 'Human-readable label' + example: 'Day' + type: 'string' name: - description: Granularity identifier + description: 'Granularity identifier' enum: - - minute - - hour - - day - - week - - month - example: day - type: string + - 'minute' + - 'hour' + - 'day' + - 'week' + - 'month' + example: 'day' + type: 'string' x-speakeasy-unknown-values: allow required: - - name - - display_label - type: object - type: array + - 'name' + - 'display_label' + type: 'object' + type: 'array' metrics: items: properties: display_format: - description: >- - How this metric value should be formatted for display (e.g. percent → multiply by 100 and append %, currency → prefix with $) + description: 'How this metric value should be formatted for display (e.g. percent → multiply by 100 and append %, currency → prefix with $)' enum: - - number - - currency - - percent - - latency - - throughput - example: number - type: string + - 'number' + - 'currency' + - 'percent' + - 'latency' + - 'throughput' + example: 'number' + type: 'string' x-speakeasy-unknown-values: allow display_label: - description: Human-readable label - example: Request Count - type: string + description: 'Human-readable label' + example: 'Request Count' + type: 'string' is_rate: - description: Whether this metric is a rate/ratio (averaged, not summed) - type: boolean + description: 'Whether this metric is a rate/ratio (averaged, not summed)' + type: 'boolean' name: - description: Metric identifier used in query requests - example: request_count - type: string + description: 'Metric identifier used in query requests' + example: 'request_count' + type: 'string' required: - - name - - display_label - - is_rate - - display_format - type: object - type: array + - 'name' + - 'display_label' + - 'is_rate' + - 'display_format' + type: 'object' + type: 'array' operators: items: properties: name: - description: Operator identifier used in filter definitions + description: 'Operator identifier used in filter definitions' enum: - - eq - - neq - - in - - not_in - - gt - - gte - - lt - - lte - example: eq - type: string + - 'eq' + - 'neq' + - 'in' + - 'not_in' + - 'gt' + - 'gte' + - 'lt' + - 'lte' + example: 'eq' + type: 'string' x-speakeasy-unknown-values: allow value_type: - description: Whether the operator expects a single value or an array + description: 'Whether the operator expects a single value or an array' enum: - - scalar - - array - type: string + - 'scalar' + - 'array' + type: 'string' x-speakeasy-unknown-values: allow required: - - name - - value_type - type: object - type: array + - 'name' + - 'value_type' + type: 'object' + type: 'array' required: - - metrics - - dimensions - - operators - - granularities - type: object + - 'metrics' + - 'dimensions' + - 'operators' + - 'granularities' + type: 'object' required: - - data - type: object - description: Returns analytics query metadata + - 'data' + type: 'object' + description: 'Returns analytics query metadata' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Get available analytics metrics and dimensions + description: 'Internal Server Error - Unexpected server error' + summary: 'Get available analytics metrics and dimensions' tags: - - beta.Analytics + - 'beta.Analytics' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /analytics/query: post: - description: >- - Execute an analytics query with specified metrics, dimensions, filters, and time range. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: queryAnalytics + description: 'Execute an analytics query with specified metrics, dimensions, filters, and time range. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'queryAnalytics' requestBody: content: application/json: example: dimensions: - - model - granularity: day + - 'model' + granularity: 'day' limit: 100 metrics: - - request_count + - 'request_count' time_range: end: '2025-01-08T00:00:00Z' start: '2025-01-01T00:00:00Z' schema: properties: classifier_dimensions: - description: >- - Group results by custom classifier tags, breaking down metrics by the specified dimension values. Requires an active classifier on the workspace. + description: 'Group results by custom classifier tags, breaking down metrics by the specified dimension values. Requires an active classifier on the workspace.' properties: classifier_id: - description: UUID of the classifier whose tags to group by. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string + description: 'UUID of the classifier whose tags to group by.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' dimension_names: items: - description: >- - Classifier dimension name (snake_case identifier). When exactly one name is provided, the response uses it as the column key; with multiple names or none, the response uses `clf_dimension_name`/`clf_dimension_value` columns. - example: department - type: string + description: 'Classifier dimension name (snake_case identifier). When exactly one name is provided, the response uses it as the column key; with multiple names or none, the response uses `clf_dimension_name`/`clf_dimension_value` columns.' + example: 'department' + type: 'string' maxItems: 10 - type: array + type: 'array' include_nulls: - description: >- - When true, also include generations that have no tag from this classifier. Defaults to false, which returns only classified generations. - type: boolean + description: 'When true, also include generations that have no tag from this classifier. Defaults to false, which returns only classified generations.' + type: 'boolean' required: - - classifier_id - type: object + - 'classifier_id' + type: 'object' classifier_filters: - description: >- - Filter results to generations with specific classifier tag values. Can be combined with classifier_dimensions (must use the same classifier_id) or used independently with standard dimensions. + description: 'Filter results to generations with specific classifier tag values. Can be combined with classifier_dimensions (must use the same classifier_id) or used independently with standard dimensions.' properties: classifier_id: - description: >- - UUID of the classifier whose tags to filter by. Must match classifier_dimensions.classifier_id when both are specified. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string + description: 'UUID of the classifier whose tags to filter by. Must match classifier_dimensions.classifier_id when both are specified.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' filters: items: properties: field: - description: >- - Classifier dimension name to filter on (snake_case identifier, e.g. "department", "work_type"). - example: department - type: string + description: 'Classifier dimension name to filter on (snake_case identifier, e.g. "department", "work_type").' + example: 'department' + type: 'string' operator: - description: >- - Filter operator. Only equality/set operators are supported (eq, neq, in, not_in) — ordered comparisons are not available because classification values are strings. - example: eq - type: string + description: 'Filter operator. Only equality/set operators are supported (eq, neq, in, not_in) — ordered comparisons are not available because classification values are strings.' + example: 'eq' + type: 'string' value: anyOf: - - type: string - - format: double - type: number + - type: 'string' + - format: 'double' + type: 'number' - items: anyOf: - - type: string - - format: double - type: number - type: array - description: Filter value. Use a scalar (string or number) for eq/neq, or an array for in/not_in. - example: Engineering + - type: 'string' + - format: 'double' + type: 'number' + type: 'array' + description: 'Filter value. Use a scalar (string or number) for eq/neq, or an array for in/not_in.' + example: 'Engineering' required: - - field - - operator - - value - type: object + - 'field' + - 'operator' + - 'value' + type: 'object' maxItems: 10 minItems: 1 - type: array + type: 'array' required: - - classifier_id - - filters - type: object + - 'classifier_id' + - 'filters' + type: 'object' dimensions: items: - description: Dimension to group by (up to 2). Use the /meta endpoint for available dimensions. - example: model - type: string + description: 'Dimension to group by (up to 2). Use the /meta endpoint for available dimensions.' + example: 'model' + type: 'string' maxItems: 2 - type: array + type: 'array' filters: items: properties: field: - description: Dimension to filter on. Use the /meta endpoint for available dimensions. - example: model - type: string + description: 'Dimension to filter on. Use the /meta endpoint for available dimensions.' + example: 'model' + type: 'string' operator: - description: Filter operator - example: eq - type: string + description: 'Filter operator' + example: 'eq' + type: 'string' value: anyOf: - - type: string - - format: double - type: number + - type: 'string' + - format: 'double' + type: 'number' - items: anyOf: - - type: string - - format: double - type: number - type: array - description: >- - Filter value (scalar or array depending on operator). Several dimensions are enriched in responses (returned as human-readable labels), but filters must use the underlying ID: `api_key_id` — numeric ID (from generation metadata) or key hash (64-char hex from GET /api/v1/keys, resolved server-side); `user` — Clerk user ID (e.g. "user_abc123"), not the display name; `workspace` — workspace UUID, not the workspace name; `app` — numeric app ID, not the app title; `model` — permaslug (e.g. "openai/gpt-4o"), not the display name. Other dimensions (provider, origin, country, etc.) are not enriched and accept the value as returned. + - type: 'string' + - format: 'double' + type: 'number' + type: 'array' + description: 'Filter value (scalar or array depending on operator). Several dimensions are enriched in responses (returned as human-readable labels), but filters must use the underlying ID: `api_key_id` — numeric ID (from generation metadata) or key hash (64-char hex from GET /api/v1/keys, resolved server-side); `user` — Clerk user ID (e.g. "user_abc123"), not the display name; `workspace` — workspace UUID, not the workspace name; `app` — numeric app ID, not the app title; `model` — permaslug (e.g. "openai/gpt-4o"), not the display name. Other dimensions (provider, origin, country, etc.) are not enriched and accept the value as returned.' required: - - field - - operator - - value - type: object + - 'field' + - 'operator' + - 'value' + type: 'object' maxItems: 20 - type: array + type: 'array' granularity: - description: Time granularity - example: day - type: string + description: 'Time granularity' + example: 'day' + type: 'string' group_limit: - description: >- - Maximum rows per distinct combination of dimensions. When omitted on time-series queries (granularity + dimensions), auto-computed to avoid truncating time windows. Explicit values override the default and may truncate time buckets if set lower than the number of buckets in the range. Ignored when no dimensions are specified. + description: 'Maximum rows per distinct combination of dimensions. When omitted on time-series queries (granularity + dimensions), auto-computed to avoid truncating time windows. Explicit values override the default and may truncate time buckets if set lower than the number of buckets in the range. Ignored when no dimensions are specified.' example: 100 - type: integer + type: 'integer' limit: - description: >- - Maximum total rows returned. Defaults to 1000. On time-series queries with dimensions and no explicit group_limit, the server may raise this to accommodate the expected number of unique time-bucket/dimension combinations. - type: integer + description: 'Maximum total rows returned. Defaults to 1000. On time-series queries with dimensions and no explicit group_limit, the server may raise this to accommodate the expected number of unique time-bucket/dimension combinations.' + type: 'integer' metrics: items: - description: Metric name - example: request_count - type: string + description: 'Metric name' + example: 'request_count' + type: 'string' minItems: 1 - type: array + type: 'array' order_by: properties: direction: enum: - - asc - - desc - type: string + - 'asc' + - 'desc' + type: 'string' x-speakeasy-unknown-values: allow field: - description: Field to order by - example: request_count - type: string + description: 'Field to order by' + example: 'request_count' + type: 'string' required: - - field - - direction - type: object + - 'field' + - 'direction' + type: 'object' time_range: properties: end: - format: date-time - type: string + format: 'date-time' + type: 'string' start: - format: date-time - type: string + format: 'date-time' + type: 'string' required: - - start - - end - type: object + - 'start' + - 'end' + type: 'object' required: - - metrics - type: object + - 'metrics' + type: 'object' required: true responses: '200': @@ -24519,112 +24651,110 @@ paths: data: properties: cachedAt: - format: double - type: number + format: 'double' + type: 'number' data: items: - description: A row of analytics data with metric/dimension values - type: object - type: array + description: 'A row of analytics data with metric/dimension values' + type: 'object' + type: 'array' metadata: properties: query_time_ms: - format: double - type: number + format: 'double' + type: 'number' row_count: - type: integer + type: 'integer' truncated: - type: boolean + type: 'boolean' required: - - query_time_ms - - row_count - - truncated - type: object + - 'query_time_ms' + - 'row_count' + - 'truncated' + type: 'object' warnings: - description: >- - Warnings about filter resolution issues (e.g. unresolvable api_key_id hashes). The query still runs normally; these inform the caller that some filter values could not be resolved. + description: 'Warnings about filter resolution issues (e.g. unresolvable api_key_id hashes). The query still runs normally; these inform the caller that some filter values could not be resolved.' items: - type: string - type: array + type: 'string' + type: 'array' required: - - data - - metadata - type: object + - 'data' + - 'metadata' + type: 'object' required: - - data - type: object - description: Analytics query results + - 'data' + type: 'object' + description: 'Analytics query results' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '408': content: application/json: example: error: code: 408 - message: Operation timed out. Please try again later. + message: 'Operation timed out. Please try again later.' schema: $ref: '#/components/schemas/RequestTimeoutResponse' - description: Request Timeout - Operation exceeded time limit + description: 'Request Timeout - Operation exceeded time limit' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Query analytics data + description: 'Internal Server Error - Unexpected server error' + summary: 'Query analytics data' tags: - - beta.Analytics + - 'beta.Analytics' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /audio/speech: post: - description: >- - Synthesizes audio from the input text. Returns a raw audio bytestream in the requested format (e.g. mp3, pcm, wav). - operationId: createAudioSpeech + description: 'Synthesizes audio from the input text. Returns a raw audio bytestream in the requested format (e.g. mp3, pcm, wav).' + operationId: 'createAudioSpeech' requestBody: content: application/json: example: - input: Hello world - model: mistralai/voxtral-mini-tts-2603 - response_format: pcm + input: 'Hello world' + model: 'mistralai/voxtral-mini-tts-2603' + response_format: 'pcm' speed: 1 - voice: en_paul_neutral + voice: 'en_paul_neutral' schema: $ref: '#/components/schemas/SpeechRequest' required: true @@ -24633,187 +24763,182 @@ paths: content: audio/*: schema: - description: >- - Raw audio bytestream. Content-Type varies by requested format (audio/mpeg for mp3, audio/pcm for pcm — 16-bit little-endian). - example: - format: binary - type: string - description: Audio bytes stream + description: 'Raw audio bytestream. Content-Type varies by requested format (audio/mpeg for mp3, audio/pcm for pcm — 16-bit little-endian).' + example: '' + format: 'binary' + type: 'string' + description: 'Audio bytes stream' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '402': content: application/json: example: error: code: 402 - message: Insufficient credits. Add more using https://openrouter.ai/credits + message: 'Insufficient credits. Add more using https://openrouter.ai/credits' schema: $ref: '#/components/schemas/PaymentRequiredResponse' - description: Payment Required - Insufficient credits or quota to complete request + description: 'Payment Required - Insufficient credits or quota to complete request' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' '502': content: application/json: example: error: code: 502 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/BadGatewayResponse' - description: Bad Gateway - Provider/upstream API failure + description: 'Bad Gateway - Provider/upstream API failure' '503': content: application/json: example: error: code: 503 - message: Service temporarily unavailable + message: 'Service temporarily unavailable' schema: $ref: '#/components/schemas/ServiceUnavailableResponse' - description: Service Unavailable - Service temporarily unavailable + description: 'Service Unavailable - Service temporarily unavailable' '524': content: application/json: example: error: code: 524 - message: Request timed out. Please try again later. + message: 'Request timed out. Please try again later.' schema: $ref: '#/components/schemas/EdgeNetworkTimeoutResponse' - description: Infrastructure Timeout - Provider request timed out at edge network + description: 'Infrastructure Timeout - Provider request timed out at edge network' '529': content: application/json: example: error: code: 529 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/ProviderOverloadedResponse' - description: Provider Overloaded - Provider is temporarily overloaded - summary: Create speech + description: 'Provider Overloaded - Provider is temporarily overloaded' + summary: 'Create speech' tags: - - TTS + - 'TTS' x-speakeasy-max-method-params: 1 - x-speakeasy-name-override: createSpeech + x-speakeasy-name-override: 'createSpeech' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /audio/transcriptions: post: - description: >- - Transcribes audio into text. Accepts base64-encoded audio input as JSON or an OpenAI-style multipart/form-data file upload, and returns the transcribed text. - operationId: createAudioTranscriptions + description: 'Transcribes audio into text. Accepts base64-encoded audio input as JSON or an OpenAI-style multipart/form-data file upload, and returns the transcribed text.' + operationId: 'createAudioTranscriptions' requestBody: content: application/json: example: input_audio: - data: UklGRiQA... - format: wav - language: en - model: openai/whisper-large-v3 + data: 'UklGRiQA...' + format: 'wav' + language: 'en' + model: 'openai/whisper-large-v3' schema: $ref: '#/components/schemas/STTRequest' multipart/form-data: example: - file: audio.wav - language: en - model: openai/whisper-large-v3 + file: 'audio.wav' + language: 'en' + model: 'openai/whisper-large-v3' schema: properties: file: - description: >- - The audio file to transcribe. The format is derived from the filename extension or the file part content type. Max 25 MB; send larger files as base64 JSON via input_audio. - format: binary - type: string + description: 'The audio file to transcribe. The format is derived from the filename extension or the file part content type. Max 25 MB; send larger files as base64 JSON via input_audio.' + format: 'binary' + type: 'string' language: - description: The language of the input audio (ISO-639-1). - type: string + description: 'The language of the input audio (ISO-639-1).' + type: 'string' model: - description: The model to use for transcription. - type: string + description: 'The model to use for transcription.' + type: 'string' response_format: - description: >- - The response format. "json" (default) returns { text, usage }; "verbose_json" additionally returns task, language, duration, and segment-level timestamps (OpenAI-compatible providers only). + description: 'The response format. "json" (default) returns { text, usage }; "verbose_json" additionally returns task, language, duration, and segment-level timestamps (OpenAI-compatible providers only).' enum: - - json - - verbose_json - type: string + - 'json' + - 'verbose_json' + type: 'string' x-speakeasy-unknown-values: allow temperature: - description: The sampling temperature. - type: number + description: 'The sampling temperature.' + type: 'number' timestamp_granularities[]: - description: >- - Timestamp detail levels to include when response_format is "verbose_json". "word" additionally returns word-level timestamps in the words array. + description: 'Timestamp detail levels to include when response_format is "verbose_json". "word" additionally returns word-level timestamps in the words array.' items: enum: - - word - - segment - type: string + - 'word' + - 'segment' + type: 'string' x-speakeasy-unknown-values: allow - type: array + type: 'array' required: - - file - - model - type: object + - 'file' + - 'model' + type: 'object' required: true responses: '200': content: application/json: example: - text: Hello, this is a test of OpenAI speech-to-text transcription. + text: 'Hello, this is a test of OpenAI speech-to-text transcription.' usage: cost: 0.000508 input_tokens: 83 @@ -24822,299 +24947,301 @@ paths: total_tokens: 113 schema: $ref: '#/components/schemas/STTResponse' - description: Transcription result + description: 'Transcription result' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '402': content: application/json: example: error: code: 402 - message: Insufficient credits. Add more using https://openrouter.ai/credits + message: 'Insufficient credits. Add more using https://openrouter.ai/credits' schema: $ref: '#/components/schemas/PaymentRequiredResponse' - description: Payment Required - Insufficient credits or quota to complete request + description: 'Payment Required - Insufficient credits or quota to complete request' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' '502': content: application/json: example: error: code: 502 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/BadGatewayResponse' - description: Bad Gateway - Provider/upstream API failure + description: 'Bad Gateway - Provider/upstream API failure' '503': content: application/json: example: error: code: 503 - message: Service temporarily unavailable + message: 'Service temporarily unavailable' schema: $ref: '#/components/schemas/ServiceUnavailableResponse' - description: Service Unavailable - Service temporarily unavailable + description: 'Service Unavailable - Service temporarily unavailable' '524': content: application/json: example: error: code: 524 - message: Request timed out. Please try again later. + message: 'Request timed out. Please try again later.' schema: $ref: '#/components/schemas/EdgeNetworkTimeoutResponse' - description: Infrastructure Timeout - Provider request timed out at edge network + description: 'Infrastructure Timeout - Provider request timed out at edge network' '529': content: application/json: example: error: code: 529 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/ProviderOverloadedResponse' - description: Provider Overloaded - Provider is temporarily overloaded - summary: Create transcription + description: 'Provider Overloaded - Provider is temporarily overloaded' + summary: 'Create transcription' tags: - - STT + - 'STT' x-speakeasy-max-method-params: 1 - x-speakeasy-name-override: createTranscription + x-speakeasy-name-override: 'createTranscription' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /auth/keys: post: - description: Exchange an authorization code from the PKCE flow for a user-controlled API key - operationId: exchangeAuthCodeForAPIKey + description: 'Exchange an authorization code from the PKCE flow for a user-controlled API key' + operationId: 'exchangeAuthCodeForAPIKey' requestBody: content: application/json: example: - code: auth_code_abc123def456 - code_challenge_method: S256 - code_verifier: dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk + code: 'auth_code_abc123def456' + code_challenge_method: 'S256' + code_verifier: 'dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk' schema: example: - code: auth_code_abc123def456 - code_challenge_method: S256 - code_verifier: dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk + code: 'auth_code_abc123def456' + code_challenge_method: 'S256' + code_verifier: 'dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk' properties: code: - description: The authorization code received from the OAuth redirect - example: auth_code_abc123def456 - type: string + description: 'The authorization code received from the OAuth redirect' + example: 'auth_code_abc123def456' + type: 'string' code_challenge_method: - description: The method used to generate the code challenge + description: 'The method used to generate the code challenge' enum: - - S256 - - plain + - 'S256' + - 'plain' - null - example: S256 - nullable: true - type: string + example: 'S256' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow code_verifier: - description: The code verifier if code_challenge was used in the authorization request - example: dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk - type: string + description: 'The code verifier if code_challenge was used in the authorization request' + example: 'dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk' + type: 'string' required: - - code - type: object + - 'code' + type: 'object' required: true responses: '200': content: application/json: example: - key: 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 - user_id: user_2yOPcMpKoQhcd4bVgSMlELRaIah + key: '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' + user_id: 'user_2yOPcMpKoQhcd4bVgSMlELRaIah' schema: example: - key: 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 - user_id: user_2yOPcMpKoQhcd4bVgSMlELRaIah + key: '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' + user_id: 'user_2yOPcMpKoQhcd4bVgSMlELRaIah' properties: key: - description: The API key to use for OpenRouter requests - example: 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 - type: string + description: 'The API key to use for OpenRouter requests' + example: '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' + type: 'string' user_id: - description: User ID associated with the API key - example: user_2yOPcMpKoQhcd4bVgSMlELRaIah - nullable: true - type: string + description: 'User ID associated with the API key' + example: 'user_2yOPcMpKoQhcd4bVgSMlELRaIah' + type: + - 'string' + - 'null' required: - - key - - user_id - type: object - description: Successfully exchanged code for an API key + - 'key' + - 'user_id' + type: 'object' + description: 'Successfully exchanged code for an API key' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Exchange authorization code for API key + description: 'Internal Server Error - Unexpected server error' + summary: 'Exchange authorization code for API key' tags: - - OAuth + - 'OAuth' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /auth/keys/code: post: - description: Create an authorization code for the PKCE flow to generate a user-controlled API key - operationId: createAuthKeysCode + description: 'Create an authorization code for the PKCE flow to generate a user-controlled API key' + operationId: 'createAuthKeysCode' requestBody: content: application/json: example: - callback_url: https://myapp.com/auth/callback - code_challenge: E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM - code_challenge_method: S256 + callback_url: 'https://myapp.com/auth/callback' + code_challenge: 'E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM' + code_challenge_method: 'S256' limit: 100 schema: example: - callback_url: https://myapp.com/auth/callback - code_challenge: E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM - code_challenge_method: S256 + callback_url: 'https://myapp.com/auth/callback' + code_challenge: 'E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM' + code_challenge_method: 'S256' limit: 100 properties: callback_url: - description: >- - The callback URL to redirect to after authorization. Supports https URLs and localhost/127.0.0.1 URLs on any port for local CLI tools. - example: https://myapp.com/auth/callback - format: uri - type: string + description: 'The callback URL to redirect to after authorization. Supports https URLs and localhost/127.0.0.1 URLs on any port for local CLI tools.' + example: 'https://myapp.com/auth/callback' + format: 'uri' + type: 'string' code_challenge: - description: PKCE code challenge for enhanced security - example: E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM - type: string + description: 'PKCE code challenge for enhanced security' + example: 'E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM' + type: 'string' code_challenge_method: - description: The method used to generate the code challenge + description: 'The method used to generate the code challenge' enum: - - S256 - - plain - example: S256 - type: string + - 'S256' + - 'plain' + example: 'S256' + type: 'string' x-speakeasy-unknown-values: allow expires_at: - description: Optional expiration time for the API key to be created + description: 'Optional expiration time for the API key to be created' example: '2027-12-31T23:59:59Z' - format: date-time - nullable: true - type: string + format: 'date-time' + type: + - 'string' + - 'null' key_label: - description: Optional custom label for the API key. Defaults to the app name if not provided. - example: My Custom Key + description: 'Optional custom label for the API key. Defaults to the app name if not provided.' + example: 'My Custom Key' maxLength: 100 - type: string + type: 'string' limit: - description: Credit limit for the API key to be created + description: 'Credit limit for the API key to be created' example: 100 - format: double - type: number + format: 'double' + type: 'number' spawn_agent: - description: Agent identifier for spawn telemetry - example: my-agent - type: string + description: 'Agent identifier for spawn telemetry' + example: 'my-agent' + type: 'string' x-fern-ignore: true x-speakeasy-ignore: true spawn_cloud: - description: Cloud identifier for spawn telemetry - example: aws-us-east-1 - type: string + description: 'Cloud identifier for spawn telemetry' + example: 'aws-us-east-1' + type: 'string' x-fern-ignore: true x-speakeasy-ignore: true usage_limit_type: - description: Optional credit limit reset interval. When set, the credit limit resets on this interval. + description: 'Optional credit limit reset interval. When set, the credit limit resets on this interval.' enum: - - daily - - weekly - - monthly - example: monthly - type: string + - 'daily' + - 'weekly' + - 'monthly' + example: 'monthly' + type: 'string' x-speakeasy-unknown-values: allow workspace_id: - description: Optional workspace ID to associate the API key with - format: uuid - type: string + description: 'Optional workspace ID to associate the API key with' + format: 'uuid' + type: 'string' required: - - callback_url - type: object + - 'callback_url' + type: 'object' required: true responses: '200': @@ -25124,167 +25251,160 @@ paths: data: app_id: 12345 created_at: '2025-08-24T10:30:00Z' - id: auth_code_xyz789 + id: 'auth_code_xyz789' schema: example: data: app_id: 12345 created_at: '2025-08-24T10:30:00Z' - id: auth_code_xyz789 + id: 'auth_code_xyz789' properties: data: - description: Auth code data + description: 'Auth code data' example: app_id: 12345 created_at: '2025-08-24T10:30:00Z' - id: auth_code_xyz789 + id: 'auth_code_xyz789' properties: app_id: - description: The application ID associated with this auth code + description: 'The application ID associated with this auth code' example: 12345 - type: integer + type: 'integer' created_at: - description: ISO 8601 timestamp of when the auth code was created + description: 'ISO 8601 timestamp of when the auth code was created' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' id: - description: The authorization code ID to use in the exchange request - example: auth_code_xyz789 - type: string + description: 'The authorization code ID to use in the exchange request' + example: 'auth_code_xyz789' + type: 'string' required: - - id - - app_id - - created_at - type: object + - 'id' + - 'app_id' + - 'created_at' + type: 'object' required: - - data - type: object - description: Successfully created authorization code + - 'data' + type: 'object' + description: 'Successfully created authorization code' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '409': content: application/json: example: error: code: 409 - message: Resource conflict. Please try again later. + message: 'Resource conflict. Please try again later.' schema: $ref: '#/components/schemas/ConflictResponse' - description: Conflict - Resource conflict or concurrent modification + description: 'Conflict - Resource conflict or concurrent modification' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Create authorization code + description: 'Internal Server Error - Unexpected server error' + summary: 'Create authorization code' tags: - - OAuth - x-speakeasy-name-override: createAuthCode + - 'OAuth' + x-speakeasy-name-override: 'createAuthCode' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /benchmarks: get: - description: >- - Unified benchmark endpoint that aggregates scores from multiple benchmark sources (Artificial Analysis, Design Arena). Filter by source to reproduce the exact shapes from the legacy per-source endpoints, or use task_type to find models suited for specific workloads. Authenticate with any valid OpenRouter API key. Rate-limited to 30 requests/minute per key and 500 requests/day per account. - operationId: getBenchmarks + description: 'Unified benchmark endpoint that aggregates scores from multiple benchmark sources (Artificial Analysis, Design Arena). Filter by source to reproduce the exact shapes from the legacy per-source endpoints, or use task_type to find models suited for specific workloads. Authenticate with any valid OpenRouter API key. Rate-limited to 30 requests/minute per key and 500 requests/day per account.' + operationId: 'getBenchmarks' parameters: - - description: >- - Benchmark source to query. Determines the shape of the returned items. When omitted, returns results from all sources. - in: query - name: source + - description: 'Benchmark source to query. Determines the shape of the returned items. When omitted, returns results from all sources.' + in: 'query' + name: 'source' required: false schema: - description: >- - Benchmark source to query. Determines the shape of the returned items. When omitted, returns results from all sources. + description: 'Benchmark source to query. Determines the shape of the returned items. When omitted, returns results from all sources.' enum: - - artificial-analysis - - design-arena - example: artificial-analysis - type: string + - 'artificial-analysis' + - 'design-arena' + example: 'artificial-analysis' + type: 'string' x-speakeasy-unknown-values: allow - - description: >- - Filter results by task type. For Artificial Analysis, maps to the corresponding index. For Design Arena, maps to the matching category. - in: query - name: task_type + - description: 'Filter results by task type. For Artificial Analysis, maps to the corresponding index. For Design Arena, maps to the matching category.' + in: 'query' + name: 'task_type' required: false schema: - description: >- - Filter results by task type. For Artificial Analysis, maps to the corresponding index. For Design Arena, maps to the matching category. + description: 'Filter results by task type. For Artificial Analysis, maps to the corresponding index. For Design Arena, maps to the matching category.' enum: - - coding - - intelligence - - agentic - example: coding - type: string + - 'coding' + - 'intelligence' + - 'agentic' + example: 'coding' + type: 'string' x-speakeasy-unknown-values: allow - description: 'Design Arena only: arena to query. Defaults to `models` when source is `design-arena`.' - in: query - name: arena + in: 'query' + name: 'arena' required: false schema: description: 'Design Arena only: arena to query. Defaults to `models` when source is `design-arena`.' enum: - - models - - builders - - agents - example: models - type: string + - 'models' + - 'builders' + - 'agents' + example: 'models' + type: 'string' x-speakeasy-unknown-values: allow - - description: >- - Design Arena only: category within the arena (e.g. `codecategories`, `uicomponent`, `gamedev`, `3d`, `dataviz`, `image`, `video`, `svg`). When omitted, returns all categories. - in: query - name: category + - description: 'Design Arena only: category within the arena (e.g. `codecategories`, `uicomponent`, `gamedev`, `3d`, `dataviz`, `image`, `video`, `svg`). When omitted, returns all categories.' + in: 'query' + name: 'category' required: false schema: - description: >- - Design Arena only: category within the arena (e.g. `codecategories`, `uicomponent`, `gamedev`, `3d`, `dataviz`, `image`, `video`, `svg`). When omitted, returns all categories. - example: codecategories - type: string - - description: Maximum number of items to return. When omitted, all matching results are returned. - in: query - name: max_results + description: 'Design Arena only: category within the arena (e.g. `codecategories`, `uicomponent`, `gamedev`, `3d`, `dataviz`, `image`, `video`, `svg`). When omitted, returns all categories.' + example: 'codecategories' + type: 'string' + - description: 'Maximum number of items to return. When omitted, all matching results are returned.' + in: 'query' + name: 'max_results' required: false schema: - description: Maximum number of items to return. When omitted, all matching results are returned. + description: 'Maximum number of items to return. When omitted, all matching results are returned.' example: 50 minimum: 1 - type: integer + type: 'integer' responses: '200': content: @@ -25293,13 +25413,13 @@ paths: data: - agentic_index: 58.3 coding_index: 65.8 - display_name: GPT-4o + display_name: 'GPT-4o' intelligence_index: 71.2 - model_permaslug: openai/gpt-4o + model_permaslug: 'openai/gpt-4o' pricing: completion: '0.00001' prompt: '0.0000025' - source: artificial-analysis + source: 'artificial-analysis' meta: as_of: '2026-06-03T12:00:00Z' citation: null @@ -25307,195 +25427,197 @@ paths: source: null source_url: null task_type: null - version: v1 + version: 'v1' schema: $ref: '#/components/schemas/UnifiedBenchmarksResponse' - description: Benchmark results filtered by the specified source and optional task type. + description: 'Benchmark results filtered by the specified source and optional task type.' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List Benchmarks + description: 'Internal Server Error - Unexpected server error' + summary: 'List Benchmarks' tags: - - Benchmarks + - 'Benchmarks' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /byok: get: - description: >- - List the bring-your-own-key (BYOK) provider credentials for the authenticated entity's default workspace. Use the `workspace_id` query parameter to scope the result to a different workspace, or the `provider` query parameter to filter by upstream provider. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: listBYOKKeys + description: 'List the bring-your-own-key (BYOK) provider credentials for the authenticated entity''s default workspace. Use the `workspace_id` query parameter to scope the result to a different workspace, or the `provider` query parameter to filter by upstream provider. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'listBYOKKeys' parameters: - - description: Number of records to skip for pagination - in: query - name: offset + - description: 'Number of records to skip for pagination' + in: 'query' + name: 'offset' required: false schema: default: 0 - description: Number of records to skip for pagination + description: 'Number of records to skip for pagination' example: 0 minimum: 0 + type: + - 'integer' + - 'null' nullable: false - type: integer - - description: Maximum number of records to return (max 100) - in: query - name: limit + - description: 'Maximum number of records to return (max 100)' + in: 'query' + name: 'limit' required: false schema: default: 50 - description: Maximum number of records to return (max 100) + description: 'Maximum number of records to return (max 100)' example: 50 maximum: 100 minimum: 1 - type: integer - - description: Optional workspace ID to filter by. Defaults to the authenticated entity's default workspace. - in: query - name: workspace_id + type: 'integer' + - description: 'Optional workspace ID to filter by. Defaults to the authenticated entity''s default workspace.' + in: 'query' + name: 'workspace_id' required: false schema: - description: Optional workspace ID to filter by. Defaults to the authenticated entity's default workspace. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - - description: Optional provider slug to filter by (e.g. `openai`, `anthropic`, `amazon-bedrock`). - in: query - name: provider + description: 'Optional workspace ID to filter by. Defaults to the authenticated entity''s default workspace.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + - description: 'Optional provider slug to filter by (e.g. `openai`, `anthropic`, `amazon-bedrock`).' + in: 'query' + name: 'provider' required: false schema: - description: Optional provider slug to filter by (e.g. `openai`, `anthropic`, `amazon-bedrock`). + description: 'Optional provider slug to filter by (e.g. `openai`, `anthropic`, `amazon-bedrock`).' enum: - - ai21 - - aion-labs - - akashml - - alibaba - - amazon-bedrock - - amazon-nova - - ambient - - anthropic - - arcee-ai - - atlas-cloud - - avian - - azure - - baidu - - baseten - - black-forest-labs - - byteplus - - cerebras - - chutes - - cirrascale - - clarifai - - cloudflare - - cohere - - crusoe - - darkbloom - - decart - - deepgram - - deepinfra - - deepseek - - dekallm - - digitalocean - - featherless - - fireworks - - friendli - - gmicloud - - google-ai-studio - - google-vertex - - groq - - heygen - - inception - - inceptron - - inferact-vllm - - inference-net - - infermatic - - inflection - - io-net - - ionstream - - krea - - liquid - - mancer - - mara - - meta - - minimax - - mistral - - modelrun - - modular - - moonshotai - - morph - - ncompass - - nebius - - nex-agi - - nextbit - - novita - - nvidia - - open-inference - - openai - - parasail - - perceptron - - perplexity - - phala - - poolside - - quiver - - recraft - - reka - - relace - - sail-research - - sakana - - sambanova - - seed - - siliconflow - - sourceful - - stepfun - - streamlake - - switchpoint - - tenstorrent - - together - - upstage - - venice - - wafer - - wandb - - xai - - xiaomi - - z-ai - example: openai - type: string + - 'ai21' + - 'aion-labs' + - 'akashml' + - 'alibaba' + - 'amazon-bedrock' + - 'amazon-nova' + - 'ambient' + - 'anthropic' + - 'arcee-ai' + - 'atlas-cloud' + - 'avian' + - 'azure' + - 'baidu' + - 'baseten' + - 'black-forest-labs' + - 'byteplus' + - 'cerebras' + - 'chutes' + - 'cirrascale' + - 'clarifai' + - 'cloudflare' + - 'cohere' + - 'crusoe' + - 'darkbloom' + - 'decart' + - 'deepgram' + - 'deepinfra' + - 'deepseek' + - 'dekallm' + - 'digitalocean' + - 'featherless' + - 'fireworks' + - 'friendli' + - 'gmicloud' + - 'google-ai-studio' + - 'google-vertex' + - 'groq' + - 'heygen' + - 'inception' + - 'inceptron' + - 'inferact-vllm' + - 'inference-net' + - 'infermatic' + - 'inflection' + - 'io-net' + - 'ionstream' + - 'krea' + - 'liquid' + - 'mancer' + - 'mara' + - 'meta' + - 'minimax' + - 'mistral' + - 'modelrun' + - 'modular' + - 'moonshotai' + - 'morph' + - 'ncompass' + - 'nebius' + - 'nex-agi' + - 'nextbit' + - 'novita' + - 'nvidia' + - 'open-inference' + - 'openai' + - 'parasail' + - 'perceptron' + - 'perplexity' + - 'phala' + - 'poolside' + - 'quiver' + - 'recraft' + - 'reka' + - 'relace' + - 'sail-research' + - 'sakana' + - 'sambanova' + - 'seed' + - 'siliconflow' + - 'sourceful' + - 'stepfun' + - 'streamlake' + - 'switchpoint' + - 'tencent' + - 'tenstorrent' + - 'together' + - 'upstage' + - 'venice' + - 'wafer' + - 'wandb' + - 'xai' + - 'xiaomi' + - 'z-ai' + example: 'openai' + type: 'string' x-speakeasy-unknown-values: allow responses: '200': @@ -25508,63 +25630,62 @@ paths: allowed_user_ids: null created_at: '2025-08-24T10:30:00Z' disabled: false - id: 11111111-2222-3333-4444-555555555555 + id: '11111111-2222-3333-4444-555555555555' is_fallback: false - label: sk-...AbCd - name: Production OpenAI Key - provider: openai + label: 'sk-...AbCd' + name: 'Production OpenAI Key' + provider: 'openai' sort_order: 0 - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' total_count: 1 schema: $ref: '#/components/schemas/ListBYOKKeysResponse' - description: List of BYOK credentials + description: 'List of BYOK credentials' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List BYOK provider credentials + description: 'Internal Server Error - Unexpected server error' + summary: 'List BYOK provider credentials' tags: - - BYOK - x-speakeasy-name-override: list + - 'BYOK' + x-speakeasy-name-override: 'list' x-speakeasy-pagination: inputs: - - in: parameters - name: offset - type: offset - - in: parameters - name: limit - type: limit + - in: 'parameters' + name: 'offset' + type: 'offset' + - in: 'parameters' + name: 'limit' + type: 'limit' outputs: - results: $.data - type: offsetLimit + results: '$.data' + type: 'offsetLimit' post: - description: >- - Create a new bring-your-own-key (BYOK) provider credential. The raw key is encrypted at rest and never returned in API responses. Defaults to the authenticated entity's default workspace; use the `workspace_id` body field to scope to a different workspace. Treat the raw key as write-only; it is never returned after creation. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: createBYOKKey + description: 'Create a new bring-your-own-key (BYOK) provider credential. The raw key is encrypted at rest and never returned in API responses. Defaults to the authenticated entity''s default workspace; use the `workspace_id` body field to scope to a different workspace. Treat the raw key as write-only; it is never returned after creation. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'createBYOKKey' requestBody: content: application/json: example: - key: sk-proj-abc123... - name: Production OpenAI Key - provider: openai + key: 'sk-proj-abc123...' + name: 'Production OpenAI Key' + provider: 'openai' schema: $ref: '#/components/schemas/CreateBYOKKeyRequest' required: true @@ -25579,79 +25700,78 @@ paths: allowed_user_ids: null created_at: '2025-08-24T10:30:00Z' disabled: false - id: 11111111-2222-3333-4444-555555555555 + id: '11111111-2222-3333-4444-555555555555' is_fallback: false - label: sk-...AbCd - name: Production OpenAI Key - provider: openai + label: 'sk-...AbCd' + name: 'Production OpenAI Key' + provider: 'openai' sort_order: 0 - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' schema: $ref: '#/components/schemas/CreateBYOKKeyResponse' - description: BYOK credential created successfully + description: 'BYOK credential created successfully' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Create a BYOK provider credential + description: 'Internal Server Error - Unexpected server error' + summary: 'Create a BYOK provider credential' tags: - - BYOK - x-speakeasy-name-override: create + - 'BYOK' + x-speakeasy-name-override: 'create' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /byok/{id}: delete: - description: >- - Delete (soft-delete) a bring-your-own-key (BYOK) provider credential by its `id`. The encrypted key material is wiped and the record is marked as deleted. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: deleteBYOKKey + description: 'Delete (soft-delete) a bring-your-own-key (BYOK) provider credential by its `id`. The encrypted key material is wiped and the record is marked as deleted. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'deleteBYOKKey' parameters: - - description: The BYOK credential ID (UUID). - in: path - name: id + - description: 'The BYOK credential ID (UUID).' + in: 'path' + name: 'id' required: true schema: - description: The BYOK credential ID (UUID). - example: 11111111-2222-3333-4444-555555555555 - format: uuid - type: string + description: 'The BYOK credential ID (UUID).' + example: '11111111-2222-3333-4444-555555555555' + format: 'uuid' + type: 'string' responses: '200': content: @@ -25660,55 +25780,54 @@ paths: deleted: true schema: $ref: '#/components/schemas/DeleteBYOKKeyResponse' - description: BYOK credential deleted successfully + description: 'BYOK credential deleted successfully' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Delete a BYOK provider credential + description: 'Internal Server Error - Unexpected server error' + summary: 'Delete a BYOK provider credential' tags: - - BYOK - x-speakeasy-name-override: delete + - 'BYOK' + x-speakeasy-name-override: 'delete' get: - description: >- - Get a single bring-your-own-key (BYOK) provider credential by its `id`. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: getBYOKKey + description: 'Get a single bring-your-own-key (BYOK) provider credential by its `id`. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'getBYOKKey' parameters: - - description: The BYOK credential ID (UUID). - in: path - name: id + - description: 'The BYOK credential ID (UUID).' + in: 'path' + name: 'id' required: true schema: - description: The BYOK credential ID (UUID). - example: 11111111-2222-3333-4444-555555555555 - format: uuid - type: string + description: 'The BYOK credential ID (UUID).' + example: '11111111-2222-3333-4444-555555555555' + format: 'uuid' + type: 'string' responses: '200': content: @@ -25720,70 +25839,69 @@ paths: allowed_user_ids: null created_at: '2025-08-24T10:30:00Z' disabled: false - id: 11111111-2222-3333-4444-555555555555 + id: '11111111-2222-3333-4444-555555555555' is_fallback: false - label: sk-...AbCd - name: Production OpenAI Key - provider: openai + label: 'sk-...AbCd' + name: 'Production OpenAI Key' + provider: 'openai' sort_order: 0 - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' schema: $ref: '#/components/schemas/GetBYOKKeyResponse' - description: BYOK credential details + description: 'BYOK credential details' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Get a BYOK provider credential + description: 'Internal Server Error - Unexpected server error' + summary: 'Get a BYOK provider credential' tags: - - BYOK - x-speakeasy-name-override: get + - 'BYOK' + x-speakeasy-name-override: 'get' patch: - description: >- - Update an existing bring-your-own-key (BYOK) provider credential by its `id`. Include the `key` field to rotate the raw provider API key in-place (the previous key material is overwritten). [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: updateBYOKKey + description: 'Update an existing bring-your-own-key (BYOK) provider credential by its `id`. Include the `key` field to rotate the raw provider API key in-place (the previous key material is overwritten). [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'updateBYOKKey' parameters: - - description: The BYOK credential ID (UUID). - in: path - name: id + - description: 'The BYOK credential ID (UUID).' + in: 'path' + name: 'id' required: true schema: - description: The BYOK credential ID (UUID). - example: 11111111-2222-3333-4444-555555555555 - format: uuid - type: string + description: 'The BYOK credential ID (UUID).' + example: '11111111-2222-3333-4444-555555555555' + format: 'uuid' + type: 'string' requestBody: content: application/json: example: disabled: false - name: Updated OpenAI Key + name: 'Updated OpenAI Key' schema: $ref: '#/components/schemas/UpdateBYOKKeyRequest' required: true @@ -25798,75 +25916,73 @@ paths: allowed_user_ids: null created_at: '2025-08-24T10:30:00Z' disabled: false - id: 11111111-2222-3333-4444-555555555555 + id: '11111111-2222-3333-4444-555555555555' is_fallback: false - label: sk-...AbCd - name: Updated OpenAI Key - provider: openai + label: 'sk-...AbCd' + name: 'Updated OpenAI Key' + provider: 'openai' sort_order: 0 - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' schema: $ref: '#/components/schemas/UpdateBYOKKeyResponse' - description: BYOK credential updated successfully + description: 'BYOK credential updated successfully' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Update a BYOK provider credential + description: 'Internal Server Error - Unexpected server error' + summary: 'Update a BYOK provider credential' tags: - - BYOK - x-speakeasy-name-override: update + - 'BYOK' + x-speakeasy-name-override: 'update' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /chat/completions: post: - description: >- - Sends a request for a model response for the given chat conversation. Supports both streaming and non-streaming modes. - operationId: sendChatCompletionRequest + description: 'Sends a request for a model response for the given chat conversation. Supports both streaming and non-streaming modes.' + operationId: 'sendChatCompletionRequest' parameters: - - description: >- - Opt-in to surface routing metadata on the response under `openrouter_metadata`. Defaults to `disabled`. The legacy header `X-OpenRouter-Experimental-Metadata` is also accepted for backward compatibility. - example: enabled - in: header - name: X-OpenRouter-Metadata + - description: 'Opt-in to surface routing metadata on the response under `openrouter_metadata`. Defaults to `disabled`. The legacy header `X-OpenRouter-Experimental-Metadata` is also accepted for backward compatibility.' + example: 'enabled' + in: 'header' + name: 'X-OpenRouter-Metadata' required: false schema: $ref: '#/components/schemas/MetadataLevel' @@ -25876,11 +25992,11 @@ paths: example: max_tokens: 150 messages: - - content: You are a helpful assistant. - role: system - - content: What is the capital of France? - role: user - model: openai/gpt-4 + - content: 'You are a helpful assistant.' + role: 'system' + - content: 'What is the capital of France?' + role: 'user' + model: 'openai/gpt-4' temperature: 0.7 schema: $ref: '#/components/schemas/ChatRequest' @@ -25891,15 +26007,16 @@ paths: application/json: example: choices: - - finish_reason: stop + - finish_reason: 'stop' index: 0 message: - content: The capital of France is Paris. - role: assistant + content: 'The capital of France is Paris.' + role: 'assistant' created: 1677652288 - id: chatcmpl-123 - model: openai/gpt-4 - object: chat.completion + id: 'chatcmpl-123' + model: 'openai/gpt-4' + object: 'chat.completion' + system_fingerprint: 'fp_44709d6fcb' usage: completion_tokens: 10 prompt_tokens: 25 @@ -25911,242 +26028,222 @@ paths: data: choices: - delta: - content: Hello - role: assistant + content: 'Hello' + role: 'assistant' finish_reason: null index: 0 created: 1677652288 - id: chatcmpl-123 - model: openai/gpt-4 - object: chat.completion.chunk + id: 'chatcmpl-123' + model: 'openai/gpt-4' + object: 'chat.completion.chunk' schema: $ref: '#/components/schemas/ChatStreamingResponse' x-speakeasy-sse-sentinel: '[DONE]' - description: Successful chat completion response + description: 'Successful chat completion response' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '402': content: application/json: example: error: code: 402 - message: Insufficient credits. Add more using https://openrouter.ai/credits + message: 'Insufficient credits. Add more using https://openrouter.ai/credits' schema: $ref: '#/components/schemas/PaymentRequiredResponse' - description: Payment Required - Insufficient credits or quota to complete request + description: 'Payment Required - Insufficient credits or quota to complete request' '403': content: application/json: examples: guardrail-blocked: - summary: Guardrail blocked the request + summary: 'Guardrail blocked the request' value: error: code: 403 message: 'Request blocked: prompt injection patterns detected' metadata: patterns: - - ignore all previous instructions + - 'ignore all previous instructions' openrouter_metadata: attempt: 1 endpoints: available: - - model: openai/gpt-4o - provider: OpenAI + - model: 'openai/gpt-4o' + provider: 'OpenAI' selected: false total: 1 is_byok: false pipeline: - data: - action: blocked + action: 'blocked' detected: true engines: - - regex + - 'regex' patterns: - - ignore all previous instructions - guardrail_id: grd_abc123 - guardrail_scope: api-key - name: regex_pi_detection + - 'ignore all previous instructions' + guardrail_id: 'grd_abc123' + guardrail_scope: 'api-key' + name: 'regex_pi_detection' summary: 'Blocked: prompt injection detected (1 pattern matched)' - type: guardrail - region: iad - requested: openai/gpt-4o - strategy: direct - summary: available=1 + type: 'guardrail' + region: 'iad' + requested: 'openai/gpt-4o' + strategy: 'direct' + summary: 'available=1' insufficient-permissions: - summary: Insufficient permissions + summary: 'Insufficient permissions' value: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: >- - Forbidden - Authentication successful but insufficient permissions, or a guardrail blocked the request. When guardrails block and the `X-OpenRouter-Metadata: enabled` header is present, the response includes `openrouter_metadata` with full routing context and a `pipeline` array containing guardrail stage details. + description: 'Forbidden - Authentication successful but insufficient permissions, or a guardrail blocked the request. When guardrails block and the `X-OpenRouter-Metadata: enabled` header is present, the response includes `openrouter_metadata` with full routing context and a `pipeline` array containing guardrail stage details.' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '408': content: application/json: example: error: code: 408 - message: Operation timed out. Please try again later. + message: 'Operation timed out. Please try again later.' schema: $ref: '#/components/schemas/RequestTimeoutResponse' - description: Request Timeout - Operation exceeded time limit + description: 'Request Timeout - Operation exceeded time limit' '413': content: application/json: example: error: code: 413 - message: Request payload too large + message: 'Request payload too large' schema: $ref: '#/components/schemas/PayloadTooLargeResponse' - description: Payload Too Large - Request payload exceeds size limits + description: 'Payload Too Large - Request payload exceeds size limits' '422': content: application/json: example: error: code: 422 - message: Invalid argument + message: 'Invalid argument' schema: $ref: '#/components/schemas/UnprocessableEntityResponse' - description: Unprocessable Entity - Semantic validation failure + description: 'Unprocessable Entity - Semantic validation failure' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' '502': content: application/json: example: error: code: 502 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/BadGatewayResponse' - description: Bad Gateway - Provider/upstream API failure + description: 'Bad Gateway - Provider/upstream API failure' '503': content: application/json: example: error: code: 503 - message: Service temporarily unavailable + message: 'Service temporarily unavailable' schema: $ref: '#/components/schemas/ServiceUnavailableResponse' - description: Service Unavailable - Service temporarily unavailable + description: 'Service Unavailable - Service temporarily unavailable' '524': content: application/json: example: error: code: 524 - message: Request timed out. Please try again later. + message: 'Request timed out. Please try again later.' schema: $ref: '#/components/schemas/EdgeNetworkTimeoutResponse' - description: Infrastructure Timeout - Provider request timed out at edge network + description: 'Infrastructure Timeout - Provider request timed out at edge network' '529': content: application/json: example: error: code: 529 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/ProviderOverloadedResponse' - description: Provider Overloaded - Provider is temporarily overloaded - summary: Create a chat completion + description: 'Provider Overloaded - Provider is temporarily overloaded' + summary: 'Create a chat completion' tags: - - Chat - x-speakeasy-group: chat - x-speakeasy-name-override: send - x-speakeasy-stream-request-field: stream + - 'Chat' + x-speakeasy-group: 'chat' + x-speakeasy-name-override: 'send' + x-speakeasy-stream-request-field: 'stream' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /classifications/task: get: - description: |- - Returns the market-share breakdown of OpenRouter traffic by task classification - (e.g. code generation, web search, summarization) over a trailing time window. - - Each classification reports its share of classified sampled requests (`usage_share`) - and classified sampled token volume (`token_share`) as fractions between 0 and 1. - The unclassified `other` bucket is excluded. Absolute volumes are not exposed - because the underlying data is sampled. - - Each classification also includes a `models` array listing the top models by - request volume within that classification, with their within-tag usage and token shares. - - Classifications are grouped into macro-categories (Code, Data, Agent, General) - with aggregate shares provided for each. - - 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 data, cite as: - "Source: OpenRouter (openrouter.ai/rankings), as of {as_of}." - operationId: getTaskClassifications + description: "Returns the market-share breakdown of OpenRouter traffic by task classification\n(e.g. code generation, web search, summarization) over a trailing time window.\n\nEach classification reports its share of classified sampled requests (`usage_share`)\nand classified sampled token volume (`token_share`) as fractions between 0 and 1.\nThe unclassified `other` bucket is excluded. Absolute volumes are not exposed\nbecause the underlying data is sampled.\n\nEach classification also includes a `models` array listing the top models by\nrequest volume within that classification, with their within-tag usage and token shares.\n\nClassifications are grouped into macro-categories (Code, Data, Agent, General)\nwith aggregate shares provided for each.\n\nAuthenticate with any valid OpenRouter API key (same key used for inference).\nRate-limited to 30 requests/minute per key and 500 requests/day per account.\n\nWhen republishing or quoting this data, cite as:\n\"Source: OpenRouter (openrouter.ai/rankings), as of {as_of}.\"" + operationId: 'getTaskClassifications' parameters: - - description: Trailing time window for the classification data. Currently only `7d` (trailing 7 days) is supported. - in: query - name: window + - description: 'Trailing time window for the classification data. Currently only `7d` (trailing 7 days) is supported.' + in: 'query' + name: 'window' required: false schema: - default: 7d - description: Trailing time window for the classification data. Currently only `7d` (trailing 7 days) is supported. + default: '7d' + description: 'Trailing time window for the classification data. Currently only `7d` (trailing 7 days) is supported.' enum: - - 7d - example: 7d - type: string + - '7d' + example: '7d' + type: 'string' responses: '200': content: @@ -26157,76 +26254,75 @@ paths: classifications: - category_token_share: 0.48 category_usage_share: 0.51 - display_name: Code Generation - macro_category: code + display_name: 'Code Generation' + macro_category: 'code' models: - - id: openai/gpt-4.1-mini + - id: 'openai/gpt-4.1-mini' tag_token_share: 0.75 tag_usage_share: 0.55 - tag: code:general_impl + tag: 'code:general_impl' token_share: 0.31 usage_share: 0.23 macro_categories: - - key: code - label: Code + - key: 'code' + label: 'Code' token_share: 0.52 usage_share: 0.45 window_days: 7 schema: $ref: '#/components/schemas/TaskClassificationResponse' - description: Task classification market-share data for the requested trailing window. + description: 'Task classification market-share data for the requested trailing window.' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Task classification market share + description: 'Internal Server Error - Unexpected server error' + summary: 'Task classification market share' tags: - - Classifications + - 'Classifications' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /credits: get: - description: >- - Get total credits purchased and used for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: getCredits + description: 'Get total credits purchased and used for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'getCredits' responses: '200': content: @@ -26236,7 +26332,7 @@ paths: total_credits: 100.5 total_usage: 25.75 schema: - description: Total credits purchased and used + description: 'Total credits purchased and used' example: data: total_credits: 100.5 @@ -26248,57 +26344,57 @@ paths: total_usage: 25.75 properties: total_credits: - description: Total credits purchased + description: 'Total credits purchased' example: 100.5 - format: double - type: number + format: 'double' + type: 'number' total_usage: - description: Total credits used + description: 'Total credits used' example: 25.75 - format: double - type: number + format: 'double' + type: 'number' required: - - total_credits - - total_usage - type: object + - 'total_credits' + - 'total_usage' + type: 'object' required: - - data - type: object - description: Returns the total credits purchased and used + - 'data' + type: 'object' + description: 'Returns the total credits purchased and used' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Get remaining credits + description: 'Internal Server Error - Unexpected server error' + summary: 'Get remaining credits' tags: - - Credits - x-speakeasy-name-override: getCredits + - 'Credits' + x-speakeasy-name-override: 'getCredits' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" @@ -26306,167 +26402,132 @@ paths: /credits/coinbase: post: deprecated: true - description: >- - Deprecated. The Coinbase APIs used by this endpoint have been deprecated, so Coinbase Commerce charges have been removed. Use the web credits purchase flow instead. - operationId: createCoinbaseCharge + description: 'Deprecated. The Coinbase APIs used by this endpoint have been deprecated, so Coinbase Commerce charges have been removed. Use the web credits purchase flow instead.' + operationId: 'createCoinbaseCharge' responses: '200': - description: This endpoint is deprecated and will never return a 200 response. + description: 'This endpoint is deprecated and will never return a 200 response.' '410': content: application/json: example: error: code: 410 - message: >- - The Coinbase APIs used by this endpoint have been deprecated, so the Coinbase Commerce credits API has been removed. Use the web credits purchase flow instead. + message: 'The Coinbase APIs used by this endpoint have been deprecated, so the Coinbase Commerce credits API has been removed. Use the web credits purchase flow instead.' schema: $ref: '#/components/schemas/GoneResponse' - description: Gone - Endpoint has been permanently removed or deprecated + description: 'Gone - Endpoint has been permanently removed or deprecated' security: [] - summary: Deprecated Coinbase Commerce charge endpoint + summary: 'Deprecated Coinbase Commerce charge endpoint' tags: - - Credits + - 'Credits' x-fern-ignore: true x-speakeasy-ignore: true - x-speakeasy-name-override: createCoinbaseCharge + x-speakeasy-name-override: 'createCoinbaseCharge' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /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 + description: "Returns the top public apps on OpenRouter ranked by token usage inside the requested\ndate window, matching the public apps marketplace on openrouter.ai/apps. Token totals\nare `prompt_tokens + completion_tokens`; hidden and private apps are excluded and\ntraffic from related app aliases is merged into the canonical visible app.\n\n`sort=popular` (default) ranks by total token volume inside the window.\n`sort=trending` ranks by absolute excess token growth: window volume minus the average\nvolume of the three equal-length periods immediately preceding the window. Apps with\nno excess growth are omitted, so `trending` may return fewer than `limit` rows.\n\nFilter with `category` (marketplace category group, e.g. `coding`) or `subcategory`\n(e.g. `cli-agent`). Ranks are re-numbered 1..N after filtering. Page with `offset` —\n`rank` stays absolute, so the first row of `offset=50` is `rank: 51`.\n\nAuthenticate with any valid OpenRouter API key (same key used for inference).\nRate-limited to 30 requests/minute per key and 500 requests/day per account.\n\nWhen republishing or quoting this dataset, OpenRouter must be cited as:\n\"Source: OpenRouter (openrouter.ai/apps), as of {as_of}.\"\n\nToken counts come from each upstream provider's own tokenizer, so a token attributed\nto one app is not directly comparable to a token attributed to another app whose\ntraffic 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 + - 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. + 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 + - 'coding' + - 'creative' + - 'productivity' + - 'entertainment' + example: 'coding' + type: 'string' x-speakeasy-unknown-values: allow - - 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 + - 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. + 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 + - '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' x-speakeasy-unknown-values: allow - - 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 + - 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. + 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 + - 'popular' + - 'trending' + example: 'popular' + type: 'string' x-speakeasy-unknown-values: allow - - 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 + - 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`. + 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 + 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. + 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 + 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. + 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 + 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`. + 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' nullable: false - type: integer responses: '200': content: @@ -26474,12 +26535,12 @@ paths: example: data: - app_id: 12345 - app_name: Cline + app_name: 'Cline' rank: 1 total_requests: 4321 total_tokens: '12345678' - app_id: 67890 - app_name: Roo Code + app_name: 'Roo Code' rank: 2 total_requests: 2109 total_tokens: '9876543' @@ -26487,208 +26548,167 @@ paths: as_of: '2026-05-12T02:00:00Z' end_date: '2026-05-11' start_date: '2026-04-12' - version: v1 + 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. + 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 + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Top apps by token usage + description: 'Internal Server Error - Unexpected server error' + summary: 'Top apps by token usage' tags: - - Datasets + - 'Datasets' x-speakeasy-pagination: inputs: - - in: parameters - name: offset - type: offset - - in: parameters - name: limit - type: limit + - in: 'parameters' + name: 'offset' + type: 'offset' + - in: 'parameters' + name: 'limit' + type: 'limit' outputs: - results: $.data - type: offsetLimit + results: '$.data' + type: 'offsetLimit' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /datasets/rankings-daily: get: - description: |- - Returns the top 50 public models per day by total token usage on OpenRouter, plus a - single aggregated `other` row per day that sums every model outside that top 50. - Token totals are `prompt_tokens + completion_tokens`, matching the public rankings - chart on openrouter.ai/rankings. - - Each row is a distinct `(date, model_permaslug)` pair. The `other` row uses the - reserved permaslug `other` and is always returned last within its date, so callers - can compute `top-50 traffic / total daily traffic` without a second request. - - Optional filters slice the dataset. `period` (`day`/`week`/`month`) sets the time - grain. `modality` and `context_bucket` narrow the exact dataset by output/input - modality (or tool-calling activity) and request context length. `category` and - `language_type` instead read a sampled, upsampled dataset whose `total_tokens` are - weekly-grain estimates — they cannot be combined with each other or with the exact - filters, and reject `period=day` with a 400. - - 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/rankings), as of {as_of}." - - Token counts come from each upstream provider's own tokenizer (Anthropic counts - are as reported by Anthropic, OpenAI counts are as reported by OpenAI, etc.), so - a token in one row is not directly comparable to a token in another row from a - different provider. - operationId: getRankingsDaily + description: "Returns the top 50 public models per day by total token usage on OpenRouter, plus a\nsingle aggregated `other` row per day that sums every model outside that top 50.\nToken totals are `prompt_tokens + completion_tokens`, matching the public rankings\nchart on openrouter.ai/rankings.\n\nEach row is a distinct `(date, model_permaslug)` pair. The `other` row uses the\nreserved permaslug `other` and is always returned last within its date, so callers\ncan compute `top-50 traffic / total daily traffic` without a second request.\n\nOptional filters slice the dataset. `period` (`day`/`week`/`month`) sets the time\ngrain. `modality` and `context_bucket` narrow the exact dataset by output/input\nmodality (or tool-calling activity) and request context length. `category` and\n`language_type` instead read a sampled, upsampled dataset whose `total_tokens` are\nweekly-grain estimates — they cannot be combined with each other or with the exact\nfilters, and reject `period=day` with a 400.\n\nAuthenticate with any valid OpenRouter API key (same key used for inference).\nRate-limited to 30 requests/minute per key and 500 requests/day per account.\n\nWhen republishing or quoting this dataset, OpenRouter must be cited as:\n\"Source: OpenRouter (openrouter.ai/rankings), as of {as_of}.\"\n\nToken counts come from each upstream provider's own tokenizer (Anthropic counts\nare as reported by Anthropic, OpenAI counts are as reported by OpenAI, etc.), so\na token in one row is not directly comparable to a token in another row from a\ndifferent provider." + operationId: 'getRankingsDaily' parameters: - - 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 + - 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`. + 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 + 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. + 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: >- - Time grain of each row. `day` (default) returns the per-UTC-day series; `week` buckets by ISO week start; `month` buckets by month start. With `category` or `language_type` only `week` (default) and `month` are available — `day` is rejected with a 400 because those datasets are aggregated weekly. For those sampled datasets `period=month` buckets each week by its week-start month, so totals are approximate at month boundaries. - in: query - name: period + pattern: '^\d{4}-\d{2}-\d{2}$' + type: 'string' + - description: 'Time grain of each row. `day` (default) returns the per-UTC-day series; `week` buckets by ISO week start; `month` buckets by month start. With `category` or `language_type` only `week` (default) and `month` are available — `day` is rejected with a 400 because those datasets are aggregated weekly. For those sampled datasets `period=month` buckets each week by its week-start month, so totals are approximate at month boundaries.' + in: 'query' + name: 'period' required: false schema: - description: >- - Time grain of each row. `day` (default) returns the per-UTC-day series; `week` buckets by ISO week start; `month` buckets by month start. With `category` or `language_type` only `week` (default) and `month` are available — `day` is rejected with a 400 because those datasets are aggregated weekly. For those sampled datasets `period=month` buckets each week by its week-start month, so totals are approximate at month boundaries. + description: 'Time grain of each row. `day` (default) returns the per-UTC-day series; `week` buckets by ISO week start; `month` buckets by month start. With `category` or `language_type` only `week` (default) and `month` are available — `day` is rejected with a 400 because those datasets are aggregated weekly. For those sampled datasets `period=month` buckets each week by its week-start month, so totals are approximate at month boundaries.' enum: - - day - - week - - month - example: day - type: string + - 'day' + - 'week' + - 'month' + example: 'day' + type: 'string' x-speakeasy-unknown-values: allow - - description: >- - Restrict to models for a modality surface: `text` / `image_output` match output modality, `image` / `audio` match input modality, and `tool_calling` keeps only rows that recorded at least one tool call. Exact dataset — cannot be combined with `category` or `language_type`. - in: query - name: modality + - description: 'Restrict to models for a modality surface: `text` / `image_output` match output modality, `image` / `audio` match input modality, and `tool_calling` keeps only rows that recorded at least one tool call. Exact dataset — cannot be combined with `category` or `language_type`.' + in: 'query' + name: 'modality' required: false schema: - description: >- - Restrict to models for a modality surface: `text` / `image_output` match output modality, `image` / `audio` match input modality, and `tool_calling` keeps only rows that recorded at least one tool call. Exact dataset — cannot be combined with `category` or `language_type`. + description: 'Restrict to models for a modality surface: `text` / `image_output` match output modality, `image` / `audio` match input modality, and `tool_calling` keeps only rows that recorded at least one tool call. Exact dataset — cannot be combined with `category` or `language_type`.' enum: - - text - - image - - image_output - - audio - - tool_calling - example: text - type: string + - 'text' + - 'image' + - 'image_output' + - 'audio' + - 'tool_calling' + example: 'text' + type: 'string' x-speakeasy-unknown-values: allow - - description: >- - Restrict to requests whose context length falls in this bucket (`1K`, `10K`, `100K`, `1M`, or `10M`). Exact dataset — cannot be combined with `category` or `language_type`. - in: query - name: context_bucket + - description: 'Restrict to requests whose context length falls in this bucket (`1K`, `10K`, `100K`, `1M`, or `10M`). Exact dataset — cannot be combined with `category` or `language_type`.' + in: 'query' + name: 'context_bucket' required: false schema: - description: >- - Restrict to requests whose context length falls in this bucket (`1K`, `10K`, `100K`, `1M`, or `10M`). Exact dataset — cannot be combined with `category` or `language_type`. + description: 'Restrict to requests whose context length falls in this bucket (`1K`, `10K`, `100K`, `1M`, or `10M`). Exact dataset — cannot be combined with `category` or `language_type`.' enum: - - 1K - - 10K - - 100K - - 1M - - 10M - example: 100K - type: string + - '1K' + - '10K' + - '100K' + - '1M' + - '10M' + example: '100K' + type: 'string' x-speakeasy-unknown-values: allow - - description: >- - Restrict to a use-case category (e.g. `programming`, `roleplay`). Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `language_type`. - in: query - name: category + - description: 'Restrict to a use-case category (e.g. `programming`, `roleplay`). Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `language_type`.' + in: 'query' + name: 'category' required: false schema: - description: >- - Restrict to a use-case category (e.g. `programming`, `roleplay`). Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `language_type`. + description: 'Restrict to a use-case category (e.g. `programming`, `roleplay`). Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `language_type`.' enum: - - programming - - roleplay - - marketing - - marketing/seo - - technology - - science - - translation - - legal - - finance - - health - - trivia - - academia - example: programming - type: string + - 'programming' + - 'roleplay' + - 'marketing' + - 'marketing/seo' + - 'technology' + - 'science' + - 'translation' + - 'legal' + - 'finance' + - 'health' + - 'trivia' + - 'academia' + example: 'programming' + type: 'string' x-speakeasy-unknown-values: allow - - description: >- - Restrict to natural-language or programming-language tagged activity. Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `category`. - in: query - name: language_type + - description: 'Restrict to natural-language or programming-language tagged activity. Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `category`.' + in: 'query' + name: 'language_type' required: false schema: - description: >- - Restrict to natural-language or programming-language tagged activity. Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `category`. + description: 'Restrict to natural-language or programming-language tagged activity. Sourced from a sampled, upsampled dataset, so `total_tokens` is an estimate and is aggregated weekly (the trailing weekly bucket may include traffic past `end_date`). Cannot be combined with `modality`, `context_bucket`, or `category`.' enum: - - natural - - programming - example: natural - type: string + - 'natural' + - 'programming' + example: 'natural' + type: 'string' x-speakeasy-unknown-values: allow responses: '200': @@ -26697,111 +26717,110 @@ paths: example: data: - date: '2026-05-11' - model_permaslug: openai/gpt-4o-2024-05-13 + model_permaslug: 'openai/gpt-4o-2024-05-13' total_tokens: '12345678' - date: '2026-05-11' - model_permaslug: anthropic/claude-3.5-sonnet-20241022 + model_permaslug: 'anthropic/claude-3.5-sonnet-20241022' total_tokens: '9876543' - date: '2026-05-11' - model_permaslug: other + model_permaslug: 'other' total_tokens: '4321098' meta: as_of: '2026-05-12T02:00:00Z' end_date: '2026-05-11' start_date: '2026-04-12' - version: v1 + version: 'v1' schema: $ref: '#/components/schemas/RankingsDailyResponse' - description: >- - Up to 51 rows per day — the top 50 public models by `total_tokens` plus a single aggregated `other` row covering every model outside that top 50. Sorted by `date` ascending, then by `total_tokens` descending, with `other` pinned last within its date. + description: 'Up to 51 rows per day — the top 50 public models by `total_tokens` plus a single aggregated `other` row covering every model outside that top 50. Sorted by `date` ascending, then by `total_tokens` descending, with `other` pinned last within its date.' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Daily token totals for top 50 models + description: 'Internal Server Error - Unexpected server error' + summary: 'Daily token totals for top 50 models' tags: - - Datasets + - 'Datasets' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /embeddings: post: - description: Submits an embedding request to the embeddings router - operationId: createEmbeddings + description: 'Submits an embedding request to the embeddings router' + operationId: 'createEmbeddings' requestBody: content: application/json: schema: - description: Embeddings request input + description: 'Embeddings request input' example: dimensions: 1536 - input: The quick brown fox jumps over the lazy dog - model: openai/text-embedding-3-small + input: 'The quick brown fox jumps over the lazy dog' + model: 'openai/text-embedding-3-small' properties: dimensions: - description: The number of dimensions for the output embeddings + description: 'The number of dimensions for the output embeddings' example: 1536 minimum: 1 - type: integer + type: 'integer' encoding_format: - description: The format of the output embeddings + description: 'The format of the output embeddings' enum: - - float - - base64 - example: float - type: string + - 'float' + - 'base64' + example: 'float' + type: 'string' x-speakeasy-unknown-values: allow input: anyOf: - - type: string + - type: 'string' - items: - type: string - type: array + type: 'string' + type: 'array' - items: - type: number - type: array + type: 'number' + type: 'array' - items: items: - type: number - type: array - type: array + type: 'number' + type: 'array' + type: 'array' - items: properties: content: @@ -26809,68 +26828,68 @@ paths: oneOf: - properties: text: - type: string + type: 'string' type: enum: - - text - type: string + - 'text' + type: 'string' required: - - type - - text - type: object + - 'type' + - 'text' + type: 'object' - properties: image_url: properties: url: - type: string + type: 'string' required: - - url - type: object + - 'url' + type: 'object' type: enum: - - image_url - type: string + - 'image_url' + type: 'string' required: - - type - - image_url - type: object + - 'type' + - 'image_url' + type: 'object' - $ref: '#/components/schemas/ContentPartInputAudio' - $ref: '#/components/schemas/ContentPartInputVideo' - $ref: '#/components/schemas/ContentPartInputFile' - type: array + type: 'array' required: - - content - type: object - type: array - description: Text, token, or multimodal input(s) to embed - example: The quick brown fox jumps over the lazy dog + - 'content' + type: 'object' + type: 'array' + description: 'Text, token, or multimodal input(s) to embed' + example: 'The quick brown fox jumps over the lazy dog' input_type: - description: The type of input (e.g. search_query, search_document) - example: search_query - type: string + description: 'The type of input (e.g. search_query, search_document)' + example: 'search_query' + type: 'string' model: - description: The model to use for embeddings - example: openai/text-embedding-3-small - type: string + description: 'The model to use for embeddings' + example: 'openai/text-embedding-3-small' + type: 'string' provider: allOf: - $ref: '#/components/schemas/ProviderPreferences' - - description: Provider routing preferences for the request. + - description: 'Provider routing preferences for the request.' user: - description: A unique identifier for the end-user - example: user-1234 - type: string + description: 'A unique identifier for the end-user' + example: 'user-1234' + type: 'string' required: - - input - - model - type: object + - 'input' + - 'model' + type: 'object' required: true responses: '200': content: application/json: schema: - description: Embeddings response containing embedding vectors + description: 'Embeddings response containing embedding vectors' example: data: - embedding: @@ -26878,268 +26897,266 @@ paths: - -0.009327292 - 0.015797347 index: 0 - object: embedding - model: openai/text-embedding-3-small - object: list + object: 'embedding' + model: 'openai/text-embedding-3-small' + object: 'list' usage: prompt_tokens: 8 total_tokens: 8 properties: data: - description: List of embedding objects + description: 'List of embedding objects' example: - embedding: - 0.0023064255 - -0.009327292 - 0.015797347 index: 0 - object: embedding + object: 'embedding' items: - description: A single embedding object + description: 'A single embedding object' example: embedding: - 0.0023064255 - -0.009327292 - 0.015797347 index: 0 - object: embedding + object: 'embedding' properties: embedding: anyOf: - items: - type: number - type: array - - type: string - description: Embedding vector as an array of floats or a base64 string + type: 'number' + type: 'array' + - type: 'string' + description: 'Embedding vector as an array of floats or a base64 string' example: - 0.0023064255 - -0.009327292 - 0.015797347 index: - description: Index of the embedding in the input list + description: 'Index of the embedding in the input list' example: 0 - type: integer + type: 'integer' object: enum: - - embedding - type: string + - 'embedding' + type: 'string' required: - - object - - embedding - type: object - type: array + - 'object' + - 'embedding' + type: 'object' + type: 'array' id: - description: Unique identifier for the embeddings response - example: embd-1234567890 - type: string + description: 'Unique identifier for the embeddings response' + example: 'embd-1234567890' + type: 'string' model: - description: The model used for embeddings - example: openai/text-embedding-3-small - type: string + description: 'The model used for embeddings' + example: 'openai/text-embedding-3-small' + type: 'string' object: enum: - - list - type: string + - 'list' + type: 'string' usage: - description: Token usage statistics + description: 'Token usage statistics' example: prompt_tokens: 8 total_tokens: 8 properties: cost: - description: Cost of the request in credits + description: 'Cost of the request in credits' example: 0.0001 - format: double - type: number + format: 'double' + type: 'number' cost_details: $ref: '#/components/schemas/CostDetails' is_byok: - description: Whether a request was made using a Bring Your Own Key configuration - type: boolean + description: 'Whether a request was made using a Bring Your Own Key configuration' + type: 'boolean' prompt_tokens: - description: Number of tokens in the input + description: 'Number of tokens in the input' example: 8 - type: integer + type: 'integer' prompt_tokens_details: - description: >- - Per-modality token breakdown. Only present when the input contains 2+ modalities (e.g. text + image) and the upstream provider returns modality-level usage data. Only non-zero modality counts are included. + description: 'Per-modality token breakdown. Only present when the input contains 2+ modalities (e.g. text + image) and the upstream provider returns modality-level usage data. Only non-zero modality counts are included.' properties: audio_tokens: - description: Number of audio tokens in the input - type: integer + description: 'Number of audio tokens in the input' + type: 'integer' file_tokens: - description: Number of file/document tokens in the input - type: integer + description: 'Number of file/document tokens in the input' + type: 'integer' image_tokens: - description: Number of image tokens in the input + description: 'Number of image tokens in the input' example: 258 - type: integer + type: 'integer' text_tokens: - description: Number of text tokens in the input + description: 'Number of text tokens in the input' example: 8 - type: integer + type: 'integer' video_tokens: - description: Number of video tokens in the input - type: integer - type: object + description: 'Number of video tokens in the input' + type: 'integer' + type: 'object' total_tokens: - description: Total number of tokens used + description: 'Total number of tokens used' example: 8 - type: integer + type: 'integer' required: - - prompt_tokens - - total_tokens - type: object + - 'prompt_tokens' + - 'total_tokens' + type: 'object' required: - - object - - data - - model - type: object + - 'object' + - 'data' + - 'model' + type: 'object' text/event-stream: example: 'data: [DONE]' schema: - description: Not used for embeddings - embeddings do not support streaming - type: string + description: 'Not used for embeddings - embeddings do not support streaming' + type: 'string' x-speakeasy-sse-sentinel: '[DONE]' - description: Embedding response + description: 'Embedding response' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '402': content: application/json: example: error: code: 402 - message: Insufficient credits. Add more using https://openrouter.ai/credits + message: 'Insufficient credits. Add more using https://openrouter.ai/credits' schema: $ref: '#/components/schemas/PaymentRequiredResponse' - description: Payment Required - Insufficient credits or quota to complete request + description: 'Payment Required - Insufficient credits or quota to complete request' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' '502': content: application/json: example: error: code: 502 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/BadGatewayResponse' - description: Bad Gateway - Provider/upstream API failure + description: 'Bad Gateway - Provider/upstream API failure' '503': content: application/json: example: error: code: 503 - message: Service temporarily unavailable + message: 'Service temporarily unavailable' schema: $ref: '#/components/schemas/ServiceUnavailableResponse' - description: Service Unavailable - Service temporarily unavailable + description: 'Service Unavailable - Service temporarily unavailable' '524': content: application/json: example: error: code: 524 - message: Request timed out. Please try again later. + message: 'Request timed out. Please try again later.' schema: $ref: '#/components/schemas/EdgeNetworkTimeoutResponse' - description: Infrastructure Timeout - Provider request timed out at edge network + description: 'Infrastructure Timeout - Provider request timed out at edge network' '529': content: application/json: example: error: code: 529 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/ProviderOverloadedResponse' - description: Provider Overloaded - Provider is temporarily overloaded - summary: Submit an embedding request + description: 'Provider Overloaded - Provider is temporarily overloaded' + summary: 'Submit an embedding request' tags: - - Embeddings - x-speakeasy-name-override: generate + - 'Embeddings' + x-speakeasy-name-override: 'generate' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /embeddings/models: get: - description: Returns a list of all available embeddings models and their properties - operationId: listEmbeddingsModels + description: 'Returns a list of all available embeddings models and their properties' + operationId: 'listEmbeddingsModels' parameters: - - description: Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned - in: query - name: offset + - description: 'Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned' + in: 'query' + name: 'offset' required: false schema: default: 0 - description: >- - Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned + description: 'Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned' example: 0 minimum: 0 + type: + - 'integer' + - 'null' nullable: false - type: integer - - description: >- - Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned - in: query - name: limit + - description: 'Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned' + in: 'query' + name: 'limit' required: false schema: default: 500 - description: >- - Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned + description: 'Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned' example: 500 maximum: 1000 minimum: 1 - type: integer + type: 'integer' responses: '200': content: @@ -27148,23 +27165,23 @@ paths: data: - architecture: input_modalities: - - text + - 'text' instruct_type: null - modality: text->text + modality: 'text->text' output_modalities: - - embeddings - tokenizer: GPT - canonical_slug: openai/text-embedding-3-small + - 'embeddings' + tokenizer: 'GPT' + canonical_slug: 'openai/text-embedding-3-small' context_length: 8192 created: 1692901234 default_parameters: null - description: OpenAI text embedding model optimized for performance. + description: 'OpenAI text embedding model optimized for performance.' expiration_date: null - id: openai/text-embedding-3-small + id: 'openai/text-embedding-3-small' knowledge_cutoff: null links: - details: /api/v1/models/openai/text-embedding-3-small/endpoints - name: Text Embedding 3 Small + details: '/api/v1/models/openai/text-embedding-3-small/endpoints' + name: 'Text Embedding 3 Small' per_request_limits: null pricing: completion: '0' @@ -27179,49 +27196,49 @@ paths: max_completion_tokens: null schema: $ref: '#/components/schemas/ModelsListResponse' - description: Returns a list of embeddings models + description: 'Returns a list of embeddings models' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List all embeddings models + description: 'Internal Server Error - Unexpected server error' + summary: 'List all embeddings models' tags: - - Embeddings - x-speakeasy-name-override: listModels + - 'Embeddings' + x-speakeasy-name-override: 'listModels' x-speakeasy-pagination: inputs: - - in: parameters - name: offset - type: offset - - in: parameters - name: limit - type: limit + - in: 'parameters' + name: 'offset' + type: 'offset' + - in: 'parameters' + name: 'limit' + type: 'limit' outputs: - results: $.data - type: offsetLimit + results: '$.data' + type: 'offsetLimit' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /endpoints/zdr: get: - operationId: listEndpointsZdr + operationId: 'listEndpointsZdr' responses: '200': content: @@ -27236,23 +27253,23 @@ paths: p99: 0.85 max_completion_tokens: 4096 max_prompt_tokens: 8192 - model_id: openai/gpt-4 - model_name: GPT-4 + model_id: 'openai/gpt-4' + model_name: 'GPT-4' name: 'OpenAI: GPT-4' pricing: completion: '0.00006' image: '0' prompt: '0.00003' request: '0' - provider_name: OpenAI - quantization: fp16 - status: default + provider_name: 'OpenAI' + quantization: 'fp16' + status: 0 supported_parameters: - - temperature - - top_p - - max_tokens + - 'temperature' + - 'top_p' + - 'max_tokens' supports_implicit_caching: true - tag: openai + tag: 'openai' throughput_last_30m: p50: 45.2 p75: 38.5 @@ -27272,23 +27289,23 @@ paths: p99: 0.85 max_completion_tokens: 4096 max_prompt_tokens: 8192 - model_id: openai/gpt-4 - model_name: GPT-4 + model_id: 'openai/gpt-4' + model_name: 'GPT-4' name: 'OpenAI: GPT-4' pricing: completion: '0.00006' image: '0' prompt: '0.00003' request: '0' - provider_name: OpenAI - quantization: fp16 - status: default + provider_name: 'OpenAI' + quantization: 'fp16' + status: 0 supported_parameters: - - temperature - - top_p - - max_tokens + - 'temperature' + - 'top_p' + - 'max_tokens' supports_implicit_caching: true - tag: openai + tag: 'openai' throughput_last_30m: p50: 45.2 p75: 38.5 @@ -27301,61 +27318,61 @@ paths: data: items: $ref: '#/components/schemas/PublicEndpoint' - type: array + type: 'array' required: - - data - type: object - description: Returns a list of endpoints + - 'data' + type: 'object' + description: 'Returns a list of endpoints' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Preview the impact of ZDR on the available endpoints + description: 'Internal Server Error - Unexpected server error' + summary: 'Preview the impact of ZDR on the available endpoints' tags: - - Endpoints - x-speakeasy-name-override: listZdrEndpoints + - 'Endpoints' + x-speakeasy-name-override: 'listZdrEndpoints' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /files: get: - description: Lists files belonging to the workspace of the authenticating API key. - operationId: listFiles + description: 'Lists files belonging to the workspace of the authenticating API key.' + operationId: 'listFiles' parameters: - - description: Maximum number of files to return (1–1000). - in: query - name: limit + - description: 'Maximum number of files to return (1–1000).' + in: 'query' + name: 'limit' required: false schema: - description: Maximum number of files to return (1–1000). + description: 'Maximum number of files to return (1–1000).' example: 100 maximum: 1000 minimum: 1 - type: integer - - description: Opaque pagination cursor from a previous response. - in: query - name: cursor + type: 'integer' + - description: 'Opaque pagination cursor from a previous response.' + in: 'query' + name: 'cursor' required: false schema: - description: Opaque pagination cursor from a previous response. - example: eyJjdXJzb3IiOiJmaWxlXzAxMUNOaGE4aUNKY1Uxd1hOUjZxNFY4dyJ9 - type: string - - description: Workspace to scope the request to. Defaults to the caller’s default workspace. - in: query - name: workspace_id + description: 'Opaque pagination cursor from a previous response.' + example: 'eyJjdXJzb3IiOiJmaWxlXzAxMUNOaGE4aUNKY1Uxd1hOUjZxNFY4dyJ9' + type: 'string' + - description: 'Workspace to scope the request to. Defaults to the caller’s default workspace.' + in: 'query' + name: 'workspace_id' required: false schema: - description: Workspace to scope the request to. Defaults to the caller’s default workspace. - example: a103d8b6-42f0-4e50-9a3c-bf41e2c3c1a7 - format: uuid - type: string + description: 'Workspace to scope the request to. Defaults to the caller’s default workspace.' + example: 'a103d8b6-42f0-4e50-9a3c-bf41e2c3c1a7' + format: 'uuid' + type: 'string' responses: '200': content: @@ -27365,97 +27382,96 @@ paths: data: - created_at: '2025-01-01T00:00:00Z' downloadable: false - filename: document.pdf - id: file_011CNha8iCJcU1wXNR6q4V8w - mime_type: application/pdf + filename: 'document.pdf' + id: 'file_011CNha8iCJcU1wXNR6q4V8w' + mime_type: 'application/pdf' size_bytes: 1024000 - type: file - first_id: file_011CNha8iCJcU1wXNR6q4V8w + type: 'file' + first_id: 'file_011CNha8iCJcU1wXNR6q4V8w' has_more: false - last_id: file_011CNha8iCJcU1wXNR6q4V8w + last_id: 'file_011CNha8iCJcU1wXNR6q4V8w' schema: $ref: '#/components/schemas/FileListResponse' - description: A page of files. + description: 'A page of files.' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List files + description: 'Internal Server Error - Unexpected server error' + summary: 'List files' tags: - - Files - x-speakeasy-name-override: list + - 'Files' + x-speakeasy-name-override: 'list' x-speakeasy-pagination: inputs: - - in: parameters - name: cursor - type: cursor + - in: 'parameters' + name: 'cursor' + type: 'cursor' outputs: - nextCursor: $.cursor - results: $.data - type: cursor + nextCursor: '$.cursor' + results: '$.data' + type: 'cursor' post: - description: >- - Uploads a file to be referenced in future API calls. The file is stored under the workspace of the authenticating API key. Maximum file size: 100 MB. - operationId: uploadFile + description: 'Uploads a file to be referenced in future API calls. The file is stored under the workspace of the authenticating API key. Maximum file size: 100 MB.' + operationId: 'uploadFile' parameters: - - description: Workspace to scope the request to. Defaults to the caller’s default workspace. - in: query - name: workspace_id + - description: 'Workspace to scope the request to. Defaults to the caller’s default workspace.' + in: 'query' + name: 'workspace_id' required: false schema: - description: Workspace to scope the request to. Defaults to the caller’s default workspace. - example: a103d8b6-42f0-4e50-9a3c-bf41e2c3c1a7 - format: uuid - type: string + description: 'Workspace to scope the request to. Defaults to the caller’s default workspace.' + example: 'a103d8b6-42f0-4e50-9a3c-bf41e2c3c1a7' + format: 'uuid' + type: 'string' requestBody: content: multipart/form-data: example: - file: document.pdf + file: 'document.pdf' schema: properties: file: - format: binary - type: string + format: 'binary' + type: 'string' required: - - file - type: object + - 'file' + type: 'object' required: true responses: '200': @@ -27464,175 +27480,175 @@ paths: example: created_at: '2025-01-01T00:00:00Z' downloadable: false - filename: document.pdf - id: file_011CNha8iCJcU1wXNR6q4V8w - mime_type: application/pdf + filename: 'document.pdf' + id: 'file_011CNha8iCJcU1wXNR6q4V8w' + mime_type: 'application/pdf' size_bytes: 1024000 - type: file + type: 'file' schema: $ref: '#/components/schemas/FileMetadata' - description: The uploaded file metadata. + description: 'The uploaded file metadata.' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '413': content: application/json: example: error: code: 413 - message: Request payload too large + message: 'Request payload too large' schema: $ref: '#/components/schemas/PayloadTooLargeResponse' - description: Payload Too Large - Request payload exceeds size limits + description: 'Payload Too Large - Request payload exceeds size limits' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Upload a file + description: 'Internal Server Error - Unexpected server error' + summary: 'Upload a file' tags: - - Files - x-speakeasy-name-override: upload + - 'Files' + x-speakeasy-name-override: 'upload' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /files/{file_id}: delete: - description: Deletes a file owned by the requesting workspace. Deletion is irreversible. - operationId: deleteFile + description: 'Deletes a file owned by the requesting workspace. Deletion is irreversible.' + operationId: 'deleteFile' parameters: - - in: path - name: file_id + - in: 'path' + name: 'file_id' required: true schema: - example: file_011CNha8iCJcU1wXNR6q4V8w - type: string - - description: Workspace to scope the request to. Defaults to the caller’s default workspace. - in: query - name: workspace_id + example: 'file_011CNha8iCJcU1wXNR6q4V8w' + type: 'string' + - description: 'Workspace to scope the request to. Defaults to the caller’s default workspace.' + in: 'query' + name: 'workspace_id' required: false schema: - description: Workspace to scope the request to. Defaults to the caller’s default workspace. - example: a103d8b6-42f0-4e50-9a3c-bf41e2c3c1a7 - format: uuid - type: string + description: 'Workspace to scope the request to. Defaults to the caller’s default workspace.' + example: 'a103d8b6-42f0-4e50-9a3c-bf41e2c3c1a7' + format: 'uuid' + type: 'string' responses: '200': content: application/json: example: - id: file_011CNha8iCJcU1wXNR6q4V8w - type: file_deleted + id: 'file_011CNha8iCJcU1wXNR6q4V8w' + type: 'file_deleted' schema: $ref: '#/components/schemas/FileDeleteResponse' - description: The file was deleted. + description: 'The file was deleted.' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Delete a file + description: 'Internal Server Error - Unexpected server error' + summary: 'Delete a file' tags: - - Files - x-speakeasy-name-override: delete + - 'Files' + x-speakeasy-name-override: 'delete' get: - description: Retrieves metadata for a single file owned by the requesting workspace. - operationId: getFileMetadata + description: 'Retrieves metadata for a single file owned by the requesting workspace.' + operationId: 'getFileMetadata' parameters: - - in: path - name: file_id + - in: 'path' + name: 'file_id' required: true schema: - example: file_011CNha8iCJcU1wXNR6q4V8w - type: string - - description: Workspace to scope the request to. Defaults to the caller’s default workspace. - in: query - name: workspace_id + example: 'file_011CNha8iCJcU1wXNR6q4V8w' + type: 'string' + - description: 'Workspace to scope the request to. Defaults to the caller’s default workspace.' + in: 'query' + name: 'workspace_id' required: false schema: - description: Workspace to scope the request to. Defaults to the caller’s default workspace. - example: a103d8b6-42f0-4e50-9a3c-bf41e2c3c1a7 - format: uuid - type: string + description: 'Workspace to scope the request to. Defaults to the caller’s default workspace.' + example: 'a103d8b6-42f0-4e50-9a3c-bf41e2c3c1a7' + format: 'uuid' + type: 'string' responses: '200': content: @@ -27640,309 +27656,314 @@ paths: example: created_at: '2025-01-01T00:00:00Z' downloadable: false - filename: document.pdf - id: file_011CNha8iCJcU1wXNR6q4V8w - mime_type: application/pdf + filename: 'document.pdf' + id: 'file_011CNha8iCJcU1wXNR6q4V8w' + mime_type: 'application/pdf' size_bytes: 1024000 - type: file + type: 'file' schema: $ref: '#/components/schemas/FileMetadata' - description: The file metadata. + description: 'The file metadata.' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Get file metadata + description: 'Internal Server Error - Unexpected server error' + summary: 'Get file metadata' tags: - - Files - x-speakeasy-name-override: retrieve + - 'Files' + x-speakeasy-name-override: 'retrieve' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /files/{file_id}/content: get: - description: Downloads the raw bytes of a file. Only files created server-side are downloadable; uploaded files return 400. - operationId: downloadFileContent + description: 'Downloads the raw bytes of a file. Only files created server-side are downloadable; uploaded files return 400.' + operationId: 'downloadFileContent' parameters: - - in: path - name: file_id + - in: 'path' + name: 'file_id' required: true schema: - example: file_011CNha8iCJcU1wXNR6q4V8w - type: string - - description: Workspace to scope the request to. Defaults to the caller’s default workspace. - in: query - name: workspace_id + example: 'file_011CNha8iCJcU1wXNR6q4V8w' + type: 'string' + - description: 'Workspace to scope the request to. Defaults to the caller’s default workspace.' + in: 'query' + name: 'workspace_id' required: false schema: - description: Workspace to scope the request to. Defaults to the caller’s default workspace. - example: a103d8b6-42f0-4e50-9a3c-bf41e2c3c1a7 - format: uuid - type: string + description: 'Workspace to scope the request to. Defaults to the caller’s default workspace.' + example: 'a103d8b6-42f0-4e50-9a3c-bf41e2c3c1a7' + format: 'uuid' + type: 'string' responses: '200': content: application/octet-stream: - example: binary file contents + example: 'binary file contents' schema: - format: binary - type: string - description: The raw file content. + format: 'binary' + type: 'string' + description: 'The raw file content.' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Download file content + description: 'Internal Server Error - Unexpected server error' + summary: 'Download file content' tags: - - Files - x-speakeasy-name-override: download + - 'Files' + x-speakeasy-name-override: 'download' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /generation: get: - operationId: getGeneration + operationId: 'getGeneration' parameters: - - description: The generation ID - in: query - name: id + - description: 'The generation ID' + in: 'query' + name: 'id' required: true schema: - description: The generation ID - example: gen-1234567890 + description: 'The generation ID' + example: 'gen-1234567890' minLength: 1 - type: string + type: 'string' responses: '200': content: application/json: example: data: - api_type: completions + api_type: 'completions' app_id: 12345 cache_discount: null cancelled: false created_at: '2024-07-15T23:33:19.433273+00:00' - external_user: user-123 - finish_reason: stop + data_region: 'global' + external_user: 'user-123' + finish_reason: 'stop' generation_time: 1200 - http_referer: https://openrouter.ai/ - id: gen-3bhGkxlo4XFrqiabUM7NDtwDzWwG + http_referer: 'https://openrouter.ai/' + id: 'gen-3bhGkxlo4XFrqiabUM7NDtwDzWwG' is_byok: false latency: 1250 - model: sao10k/l3-stheno-8b + model: 'sao10k/l3-stheno-8b' moderation_latency: 50 - native_finish_reason: stop + native_finish_reason: 'stop' native_tokens_cached: 3 native_tokens_completion: 25 native_tokens_completion_images: 0 native_tokens_prompt: 10 native_tokens_reasoning: 5 + num_fetches: 0 num_input_audio_prompt: 0 num_media_completion: 0 num_media_prompt: 1 num_search_results: 5 - origin: https://openrouter.ai/ - provider_name: Infermatic + origin: 'https://openrouter.ai/' + preset_id: 'a9e8d400-592a-494f-908c-375efa66cafd' + provider_name: 'Infermatic' provider_responses: null - request_id: req-1727282430-aBcDeFgHiJkLmNoPqRsT - router: openrouter/auto + request_id: 'req-1727282430-aBcDeFgHiJkLmNoPqRsT' + router: 'openrouter/auto' + service_tier: 'priority' session_id: null streamed: true tokens_completion: 25 tokens_prompt: 10 total_cost: 0.0015 - upstream_id: chatcmpl-791bcf62-080e-4568-87d0-94c72e3b4946 + upstream_id: 'chatcmpl-791bcf62-080e-4568-87d0-94c72e3b4946' upstream_inference_cost: 0.0012 usage: 0.0015 - user_agent: Mozilla/5.0 + user_agent: 'Mozilla/5.0' + web_search_engine: 'exa' schema: $ref: '#/components/schemas/GenerationResponse' - description: Returns the request metadata for this generation + description: 'Returns the request metadata for this generation' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '402': content: application/json: example: error: code: 402 - message: Insufficient credits. Add more using https://openrouter.ai/credits + message: 'Insufficient credits. Add more using https://openrouter.ai/credits' schema: $ref: '#/components/schemas/PaymentRequiredResponse' - description: Payment Required - Insufficient credits or quota to complete request + description: 'Payment Required - Insufficient credits or quota to complete request' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' '502': content: application/json: example: error: code: 502 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/BadGatewayResponse' - description: Bad Gateway - Provider/upstream API failure + description: 'Bad Gateway - Provider/upstream API failure' '524': content: application/json: example: error: code: 524 - message: Request timed out. Please try again later. + message: 'Request timed out. Please try again later.' schema: $ref: '#/components/schemas/EdgeNetworkTimeoutResponse' - description: Infrastructure Timeout - Provider request timed out at edge network + description: 'Infrastructure Timeout - Provider request timed out at edge network' '529': content: application/json: example: error: code: 529 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/ProviderOverloadedResponse' - description: Provider Overloaded - Provider is temporarily overloaded - summary: Get request & usage metadata for a generation + description: 'Provider Overloaded - Provider is temporarily overloaded' + summary: 'Get request & usage metadata for a generation' tags: - - Generations + - 'Generations' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /generation/content: get: - operationId: listGenerationContent + operationId: 'listGenerationContent' parameters: - - description: The generation ID - in: query - name: id + - description: 'The generation ID' + in: 'query' + name: 'id' required: true schema: - description: The generation ID - example: gen-1234567890 + description: 'The generation ID' + example: 'gen-1234567890' minLength: 1 - type: string + type: 'string' responses: '200': content: @@ -27951,113 +27972,112 @@ paths: data: input: messages: - - content: What is the meaning of life? - role: user + - content: 'What is the meaning of life?' + role: 'user' output: - completion: The meaning of life is a philosophical question... + completion: 'The meaning of life is a philosophical question...' reasoning: null schema: $ref: '#/components/schemas/GenerationContentResponse' - description: Returns the stored prompt and completion content + description: 'Returns the stored prompt and completion content' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' '502': content: application/json: example: error: code: 502 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/BadGatewayResponse' - description: Bad Gateway - Provider/upstream API failure + description: 'Bad Gateway - Provider/upstream API failure' '524': content: application/json: example: error: code: 524 - message: Request timed out. Please try again later. + message: 'Request timed out. Please try again later.' schema: $ref: '#/components/schemas/EdgeNetworkTimeoutResponse' - description: Infrastructure Timeout - Provider request timed out at edge network + description: 'Infrastructure Timeout - Provider request timed out at edge network' '529': content: application/json: example: error: code: 529 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/ProviderOverloadedResponse' - description: Provider Overloaded - Provider is temporarily overloaded - summary: Get stored prompt and completion content for a generation + description: 'Provider Overloaded - Provider is temporarily overloaded' + summary: 'Get stored prompt and completion content for a generation' tags: - - Generations + - 'Generations' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /generation/feedback: post: - description: >- - Submit structured feedback on a generation the authenticated user made. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: submitGenerationFeedback + description: 'Submit structured feedback on a generation the authenticated user made. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'submitGenerationFeedback' requestBody: content: application/json: example: - category: incorrect_response - comment: The model repeated the same paragraph three times. - generation_id: gen-3bhGkxlo4XFrqiabUM7NDtwDzWwG + category: 'incorrect_response' + comment: 'The model repeated the same paragraph three times.' + generation_id: 'gen-3bhGkxlo4XFrqiabUM7NDtwDzWwG' schema: $ref: '#/components/schemas/SubmitGenerationFeedbackRequest' required: true @@ -28070,102 +28090,103 @@ paths: success: true schema: $ref: '#/components/schemas/SubmitGenerationFeedbackResponse' - description: Feedback recorded successfully + description: 'Feedback recorded successfully' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Submit feedback for a generation + description: 'Internal Server Error - Unexpected server error' + summary: 'Submit feedback for a generation' tags: - - Generations - x-speakeasy-name-override: submitFeedback + - 'Generations' + x-speakeasy-name-override: 'submitFeedback' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /guardrails: get: - description: >- - List all guardrails for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: listGuardrails + description: 'List all guardrails for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'listGuardrails' parameters: - - description: Number of records to skip for pagination - in: query - name: offset + - description: 'Number of records to skip for pagination' + in: 'query' + name: 'offset' required: false schema: default: 0 - description: Number of records to skip for pagination + description: 'Number of records to skip for pagination' example: 0 minimum: 0 + type: + - 'integer' + - 'null' nullable: false - type: integer - - description: Maximum number of records to return (max 100) - in: query - name: limit + - description: 'Maximum number of records to return (max 100)' + in: 'query' + name: 'limit' required: false schema: default: 50 - description: Maximum number of records to return (max 100) + description: 'Maximum number of records to return (max 100)' example: 50 maximum: 100 minimum: 1 - type: integer - - description: Filter guardrails by workspace ID. By default, guardrails in the default workspace are returned. - in: query - name: workspace_id + type: 'integer' + - description: 'Filter guardrails by workspace ID. By default, guardrails in the default workspace are returned.' + in: 'query' + name: 'workspace_id' required: false schema: - description: Filter guardrails by workspace ID. By default, guardrails in the default workspace are returned. - example: 0df9e665-d932-5740-b2c7-b52af166bc11 - format: uuid - type: string + description: 'Filter guardrails by workspace ID. By default, guardrails in the default workspace are returned.' + example: '0df9e665-d932-5740-b2c7-b52af166bc11' + format: 'uuid' + type: 'string' responses: '200': content: @@ -28174,73 +28195,72 @@ paths: data: - allowed_models: null allowed_providers: - - openai - - anthropic - - google + - 'openai' + - 'anthropic' + - 'google' created_at: '2025-08-24T10:30:00Z' - description: Guardrail for production environment + description: 'Guardrail for production environment' enforce_zdr: false - id: 550e8400-e29b-41d4-a716-446655440000 + id: '550e8400-e29b-41d4-a716-446655440000' ignored_models: null ignored_providers: null limit_usd: 100 - name: Production Guardrail - reset_interval: monthly + name: 'Production Guardrail' + reset_interval: 'monthly' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' total_count: 1 schema: $ref: '#/components/schemas/ListGuardrailsResponse' - description: List of guardrails + description: 'List of guardrails' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List guardrails + description: 'Internal Server Error - Unexpected server error' + summary: 'List guardrails' tags: - - Guardrails - x-speakeasy-name-override: list + - 'Guardrails' + x-speakeasy-name-override: 'list' x-speakeasy-pagination: inputs: - - in: parameters - name: offset - type: offset - - in: parameters - name: limit - type: limit + - in: 'parameters' + name: 'offset' + type: 'offset' + - in: 'parameters' + name: 'limit' + type: 'limit' outputs: - results: $.data - type: offsetLimit + results: '$.data' + type: 'offsetLimit' post: - description: >- - Create a new guardrail for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: createGuardrail + description: 'Create a new guardrail for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'createGuardrail' requestBody: content: application/json: example: allowed_models: null allowed_providers: - - openai - - anthropic - - deepseek - description: A guardrail for limiting API usage + - 'openai' + - 'anthropic' + - 'deepseek' + description: 'A guardrail for limiting API usage' enforce_zdr_anthropic: true enforce_zdr_google: false enforce_zdr_openai: true @@ -28249,8 +28269,8 @@ paths: ignored_models: null ignored_providers: null limit_usd: 50 - name: My New Guardrail - reset_interval: monthly + name: 'My New Guardrail' + reset_interval: 'monthly' schema: $ref: '#/components/schemas/CreateGuardrailRequest' required: true @@ -28262,90 +28282,90 @@ paths: data: allowed_models: null allowed_providers: - - openai - - anthropic - - google + - 'openai' + - 'anthropic' + - 'google' created_at: '2025-08-24T10:30:00Z' - description: A guardrail for limiting API usage + description: 'A guardrail for limiting API usage' enforce_zdr: null enforce_zdr_anthropic: true enforce_zdr_google: false enforce_zdr_openai: true enforce_zdr_other: false enforce_zdr_xai: false - id: 550e8400-e29b-41d4-a716-446655440000 + id: '550e8400-e29b-41d4-a716-446655440000' ignored_models: null ignored_providers: null limit_usd: 50 - name: My New Guardrail - reset_interval: monthly + name: 'My New Guardrail' + reset_interval: 'monthly' updated_at: null - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' schema: $ref: '#/components/schemas/CreateGuardrailResponse' - description: Guardrail created successfully + description: 'Guardrail created successfully' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Create a guardrail + description: 'Internal Server Error - Unexpected server error' + summary: 'Create a guardrail' tags: - - Guardrails - x-speakeasy-name-override: create + - 'Guardrails' + x-speakeasy-name-override: 'create' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /guardrails/{id}: delete: - description: Delete an existing guardrail. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: deleteGuardrail + description: 'Delete an existing guardrail. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'deleteGuardrail' parameters: - - description: The unique identifier of the guardrail to delete - in: path - name: id + - description: 'The unique identifier of the guardrail to delete' + in: 'path' + name: 'id' required: true schema: - description: The unique identifier of the guardrail to delete - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string + description: 'The unique identifier of the guardrail to delete' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' responses: '200': content: @@ -28354,54 +28374,54 @@ paths: deleted: true schema: $ref: '#/components/schemas/DeleteGuardrailResponse' - description: Guardrail deleted successfully + description: 'Guardrail deleted successfully' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Delete a guardrail + description: 'Internal Server Error - Unexpected server error' + summary: 'Delete a guardrail' tags: - - Guardrails - x-speakeasy-name-override: delete + - 'Guardrails' + x-speakeasy-name-override: 'delete' get: - description: Get a single guardrail by ID. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: getGuardrail + description: 'Get a single guardrail by ID. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'getGuardrail' parameters: - - description: The unique identifier of the guardrail to retrieve - in: path - name: id + - description: 'The unique identifier of the guardrail to retrieve' + in: 'path' + name: 'id' required: true schema: - description: The unique identifier of the guardrail to retrieve - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string + description: 'The unique identifier of the guardrail to retrieve' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' responses: '200': content: @@ -28410,79 +28430,78 @@ paths: data: allowed_models: null allowed_providers: - - openai - - anthropic - - google + - 'openai' + - 'anthropic' + - 'google' created_at: '2025-08-24T10:30:00Z' - description: Guardrail for production environment + description: 'Guardrail for production environment' enforce_zdr: false - id: 550e8400-e29b-41d4-a716-446655440000 + id: '550e8400-e29b-41d4-a716-446655440000' ignored_models: null ignored_providers: null limit_usd: 100 - name: Production Guardrail - reset_interval: monthly + name: 'Production Guardrail' + reset_interval: 'monthly' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' schema: $ref: '#/components/schemas/GetGuardrailResponse' - description: Guardrail details + description: 'Guardrail details' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Get a guardrail + description: 'Internal Server Error - Unexpected server error' + summary: 'Get a guardrail' tags: - - Guardrails - x-speakeasy-name-override: get + - 'Guardrails' + x-speakeasy-name-override: 'get' patch: - description: >- - Update an existing guardrail. Collection fields use replace semantics: send the full desired set on every update. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: updateGuardrail + description: 'Update an existing guardrail. Collection fields use replace semantics: send the full desired set on every update. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'updateGuardrail' parameters: - - description: The unique identifier of the guardrail to update - in: path - name: id + - description: 'The unique identifier of the guardrail to update' + in: 'path' + name: 'id' required: true schema: - description: The unique identifier of the guardrail to update - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string + description: 'The unique identifier of the guardrail to update' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' requestBody: content: application/json: example: - description: Updated description + description: 'Updated description' limit_usd: 75 - name: Updated Guardrail Name - reset_interval: weekly + name: 'Updated Guardrail Name' + reset_interval: 'weekly' schema: $ref: '#/components/schemas/UpdateGuardrailRequest' required: true @@ -28494,193 +28513,193 @@ paths: data: allowed_models: null allowed_providers: - - openai + - 'openai' created_at: '2025-08-24T10:30:00Z' - description: Updated description + description: 'Updated description' enforce_zdr: null enforce_zdr_anthropic: true enforce_zdr_google: true enforce_zdr_openai: true enforce_zdr_other: true enforce_zdr_xai: true - id: 550e8400-e29b-41d4-a716-446655440000 + id: '550e8400-e29b-41d4-a716-446655440000' ignored_models: null ignored_providers: null limit_usd: 75 - name: Updated Guardrail Name - reset_interval: weekly + name: 'Updated Guardrail Name' + reset_interval: 'weekly' updated_at: '2025-08-24T16:00:00Z' - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' schema: $ref: '#/components/schemas/UpdateGuardrailResponse' - description: Guardrail updated successfully + description: 'Guardrail updated successfully' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Update a guardrail + description: 'Internal Server Error - Unexpected server error' + summary: 'Update a guardrail' tags: - - Guardrails - x-speakeasy-name-override: update + - 'Guardrails' + x-speakeasy-name-override: 'update' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /guardrails/{id}/assignments/keys: get: - description: >- - List all API key assignments for a specific guardrail. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: listGuardrailKeyAssignments + description: 'List all API key assignments for a specific guardrail. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'listGuardrailKeyAssignments' parameters: - - description: The unique identifier of the guardrail - in: path - name: id + - description: 'The unique identifier of the guardrail' + in: 'path' + name: 'id' required: true schema: - description: The unique identifier of the guardrail - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - - description: Number of records to skip for pagination - in: query - name: offset + description: 'The unique identifier of the guardrail' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + - description: 'Number of records to skip for pagination' + in: 'query' + name: 'offset' required: false schema: default: 0 - description: Number of records to skip for pagination + description: 'Number of records to skip for pagination' example: 0 minimum: 0 + type: + - 'integer' + - 'null' nullable: false - type: integer - - description: Maximum number of records to return (max 100) - in: query - name: limit + - description: 'Maximum number of records to return (max 100)' + in: 'query' + name: 'limit' required: false schema: default: 50 - description: Maximum number of records to return (max 100) + description: 'Maximum number of records to return (max 100)' example: 50 maximum: 100 minimum: 1 - type: integer + type: 'integer' responses: '200': content: application/json: example: data: - - assigned_by: user_abc123 + - assigned_by: 'user_abc123' created_at: '2025-08-24T10:30:00Z' - guardrail_id: 550e8400-e29b-41d4-a716-446655440001 - id: 550e8400-e29b-41d4-a716-446655440000 - key_hash: c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93 - key_label: prod-key - key_name: Production Key + guardrail_id: '550e8400-e29b-41d4-a716-446655440001' + id: '550e8400-e29b-41d4-a716-446655440000' + key_hash: 'c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93' + key_label: 'prod-key' + key_name: 'Production Key' total_count: 1 schema: $ref: '#/components/schemas/ListKeyAssignmentsResponse' - description: List of key assignments + description: 'List of key assignments' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List key assignments for a guardrail + description: 'Internal Server Error - Unexpected server error' + summary: 'List key assignments for a guardrail' tags: - - Guardrails - x-speakeasy-name-override: listGuardrailKeyAssignments + - 'Guardrails' + x-speakeasy-name-override: 'listGuardrailKeyAssignments' x-speakeasy-pagination: inputs: - - in: parameters - name: offset - type: offset - - in: parameters - name: limit - type: limit + - in: 'parameters' + name: 'offset' + type: 'offset' + - in: 'parameters' + name: 'limit' + type: 'limit' outputs: - results: $.data - type: offsetLimit + results: '$.data' + type: 'offsetLimit' post: - description: >- - Assign multiple API keys to a specific guardrail. A key may hold at most one guardrail; assigning replaces any existing assignment. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: bulkAssignKeysToGuardrail + description: 'Assign multiple API keys to a specific guardrail. A key may hold at most one guardrail; assigning replaces any existing assignment. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'bulkAssignKeysToGuardrail' parameters: - - description: The unique identifier of the guardrail - in: path - name: id + - description: 'The unique identifier of the guardrail' + in: 'path' + name: 'id' required: true schema: - description: The unique identifier of the guardrail - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string + description: 'The unique identifier of the guardrail' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' requestBody: content: application/json: example: key_hashes: - - c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93 + - 'c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93' schema: $ref: '#/components/schemas/BulkAssignKeysRequest' required: true @@ -28692,76 +28711,75 @@ paths: assigned_count: 3 schema: $ref: '#/components/schemas/BulkAssignKeysResponse' - description: Assignment result + description: 'Assignment result' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Bulk assign keys to a guardrail + description: 'Internal Server Error - Unexpected server error' + summary: 'Bulk assign keys to a guardrail' tags: - - Guardrails - x-speakeasy-name-override: bulkAssignKeys + - 'Guardrails' + x-speakeasy-name-override: 'bulkAssignKeys' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /guardrails/{id}/assignments/keys/remove: post: - description: >- - Unassign multiple API keys from a specific guardrail. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: bulkUnassignKeysFromGuardrail + description: 'Unassign multiple API keys from a specific guardrail. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'bulkUnassignKeysFromGuardrail' parameters: - - description: The unique identifier of the guardrail - in: path - name: id + - description: 'The unique identifier of the guardrail' + in: 'path' + name: 'id' required: true schema: - description: The unique identifier of the guardrail - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string + description: 'The unique identifier of the guardrail' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' requestBody: content: application/json: example: key_hashes: - - c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93 + - 'c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93' schema: $ref: '#/components/schemas/BulkUnassignKeysRequest' required: true @@ -28773,174 +28791,174 @@ paths: unassigned_count: 3 schema: $ref: '#/components/schemas/BulkUnassignKeysResponse' - description: Unassignment result + description: 'Unassignment result' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Bulk unassign keys from a guardrail + description: 'Internal Server Error - Unexpected server error' + summary: 'Bulk unassign keys from a guardrail' tags: - - Guardrails - x-speakeasy-name-override: bulkUnassignKeys + - 'Guardrails' + x-speakeasy-name-override: 'bulkUnassignKeys' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /guardrails/{id}/assignments/members: get: - description: >- - List all organization member assignments for a specific guardrail. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: listGuardrailMemberAssignments + description: 'List all organization member assignments for a specific guardrail. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'listGuardrailMemberAssignments' parameters: - - description: The unique identifier of the guardrail - in: path - name: id + - description: 'The unique identifier of the guardrail' + in: 'path' + name: 'id' required: true schema: - description: The unique identifier of the guardrail - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string - - description: Number of records to skip for pagination - in: query - name: offset + description: 'The unique identifier of the guardrail' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' + - description: 'Number of records to skip for pagination' + in: 'query' + name: 'offset' required: false schema: default: 0 - description: Number of records to skip for pagination + description: 'Number of records to skip for pagination' example: 0 minimum: 0 + type: + - 'integer' + - 'null' nullable: false - type: integer - - description: Maximum number of records to return (max 100) - in: query - name: limit + - description: 'Maximum number of records to return (max 100)' + in: 'query' + name: 'limit' required: false schema: default: 50 - description: Maximum number of records to return (max 100) + description: 'Maximum number of records to return (max 100)' example: 50 maximum: 100 minimum: 1 - type: integer + type: 'integer' responses: '200': content: application/json: example: data: - - assigned_by: user_abc123 + - assigned_by: 'user_abc123' created_at: '2025-08-24T10:30:00Z' - guardrail_id: 550e8400-e29b-41d4-a716-446655440001 - id: 550e8400-e29b-41d4-a716-446655440000 - organization_id: org_xyz789 - user_id: user_abc123 + guardrail_id: '550e8400-e29b-41d4-a716-446655440001' + id: '550e8400-e29b-41d4-a716-446655440000' + organization_id: 'org_xyz789' + user_id: 'user_abc123' total_count: 1 schema: $ref: '#/components/schemas/ListMemberAssignmentsResponse' - description: List of member assignments + description: 'List of member assignments' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List member assignments for a guardrail + description: 'Internal Server Error - Unexpected server error' + summary: 'List member assignments for a guardrail' tags: - - Guardrails - x-speakeasy-name-override: listGuardrailMemberAssignments + - 'Guardrails' + x-speakeasy-name-override: 'listGuardrailMemberAssignments' x-speakeasy-pagination: inputs: - - in: parameters - name: offset - type: offset - - in: parameters - name: limit - type: limit + - in: 'parameters' + name: 'offset' + type: 'offset' + - in: 'parameters' + name: 'limit' + type: 'limit' outputs: - results: $.data - type: offsetLimit + results: '$.data' + type: 'offsetLimit' post: - description: >- - Assign multiple organization members to a specific guardrail. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: bulkAssignMembersToGuardrail + description: 'Assign multiple organization members to a specific guardrail. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'bulkAssignMembersToGuardrail' parameters: - - description: The unique identifier of the guardrail - in: path - name: id + - description: 'The unique identifier of the guardrail' + in: 'path' + name: 'id' required: true schema: - description: The unique identifier of the guardrail - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string + description: 'The unique identifier of the guardrail' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' requestBody: content: application/json: example: member_user_ids: - - user_abc123 - - user_def456 + - 'user_abc123' + - 'user_def456' schema: $ref: '#/components/schemas/BulkAssignMembersRequest' required: true @@ -28952,77 +28970,76 @@ paths: assigned_count: 2 schema: $ref: '#/components/schemas/BulkAssignMembersResponse' - description: Assignment result + description: 'Assignment result' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Bulk assign members to a guardrail + description: 'Internal Server Error - Unexpected server error' + summary: 'Bulk assign members to a guardrail' tags: - - Guardrails - x-speakeasy-name-override: bulkAssignMembers + - 'Guardrails' + x-speakeasy-name-override: 'bulkAssignMembers' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /guardrails/{id}/assignments/members/remove: post: - description: >- - Unassign multiple organization members from a specific guardrail. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: bulkUnassignMembersFromGuardrail + description: 'Unassign multiple organization members from a specific guardrail. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'bulkUnassignMembersFromGuardrail' parameters: - - description: The unique identifier of the guardrail - in: path - name: id + - description: 'The unique identifier of the guardrail' + in: 'path' + name: 'id' required: true schema: - description: The unique identifier of the guardrail - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string + description: 'The unique identifier of the guardrail' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' requestBody: content: application/json: example: member_user_ids: - - user_abc123 - - user_def456 + - 'user_abc123' + - 'user_def456' schema: $ref: '#/components/schemas/BulkUnassignMembersRequest' required: true @@ -29034,232 +29051,234 @@ paths: unassigned_count: 2 schema: $ref: '#/components/schemas/BulkUnassignMembersResponse' - description: Unassignment result + description: 'Unassignment result' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Bulk unassign members from a guardrail + description: 'Internal Server Error - Unexpected server error' + summary: 'Bulk unassign members from a guardrail' tags: - - Guardrails - x-speakeasy-name-override: bulkUnassignMembers + - 'Guardrails' + x-speakeasy-name-override: 'bulkUnassignMembers' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /guardrails/assignments/keys: get: - description: >- - List all API key guardrail assignments for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: listKeyAssignments + description: 'List all API key guardrail assignments for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'listKeyAssignments' parameters: - - description: Number of records to skip for pagination - in: query - name: offset + - description: 'Number of records to skip for pagination' + in: 'query' + name: 'offset' required: false schema: default: 0 - description: Number of records to skip for pagination + description: 'Number of records to skip for pagination' example: 0 minimum: 0 + type: + - 'integer' + - 'null' nullable: false - type: integer - - description: Maximum number of records to return (max 100) - in: query - name: limit + - description: 'Maximum number of records to return (max 100)' + in: 'query' + name: 'limit' required: false schema: default: 50 - description: Maximum number of records to return (max 100) + description: 'Maximum number of records to return (max 100)' example: 50 maximum: 100 minimum: 1 - type: integer + type: 'integer' responses: '200': content: application/json: example: data: - - assigned_by: user_abc123 + - assigned_by: 'user_abc123' created_at: '2025-08-24T10:30:00Z' - guardrail_id: 550e8400-e29b-41d4-a716-446655440001 - id: 550e8400-e29b-41d4-a716-446655440000 - key_hash: c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93 - key_label: prod-key - key_name: Production Key + guardrail_id: '550e8400-e29b-41d4-a716-446655440001' + id: '550e8400-e29b-41d4-a716-446655440000' + key_hash: 'c56454edb818d6b14bc0d61c46025f1450b0f4012d12304ab40aacb519fcbc93' + key_label: 'prod-key' + key_name: 'Production Key' total_count: 1 schema: $ref: '#/components/schemas/ListKeyAssignmentsResponse' - description: List of key assignments + description: 'List of key assignments' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List all key assignments + description: 'Internal Server Error - Unexpected server error' + summary: 'List all key assignments' tags: - - Guardrails - x-speakeasy-name-override: listKeyAssignments + - 'Guardrails' + x-speakeasy-name-override: 'listKeyAssignments' x-speakeasy-pagination: inputs: - - in: parameters - name: offset - type: offset - - in: parameters - name: limit - type: limit + - in: 'parameters' + name: 'offset' + type: 'offset' + - in: 'parameters' + name: 'limit' + type: 'limit' outputs: - results: $.data - type: offsetLimit + results: '$.data' + type: 'offsetLimit' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /guardrails/assignments/members: get: - description: >- - List all organization member guardrail assignments for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: listMemberAssignments + description: 'List all organization member guardrail assignments for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'listMemberAssignments' parameters: - - description: Number of records to skip for pagination - in: query - name: offset + - description: 'Number of records to skip for pagination' + in: 'query' + name: 'offset' required: false schema: default: 0 - description: Number of records to skip for pagination + description: 'Number of records to skip for pagination' example: 0 minimum: 0 + type: + - 'integer' + - 'null' nullable: false - type: integer - - description: Maximum number of records to return (max 100) - in: query - name: limit + - description: 'Maximum number of records to return (max 100)' + in: 'query' + name: 'limit' required: false schema: default: 50 - description: Maximum number of records to return (max 100) + description: 'Maximum number of records to return (max 100)' example: 50 maximum: 100 minimum: 1 - type: integer + type: 'integer' responses: '200': content: application/json: example: data: - - assigned_by: user_abc123 + - assigned_by: 'user_abc123' created_at: '2025-08-24T10:30:00Z' - guardrail_id: 550e8400-e29b-41d4-a716-446655440001 - id: 550e8400-e29b-41d4-a716-446655440000 - organization_id: org_xyz789 - user_id: user_abc123 + guardrail_id: '550e8400-e29b-41d4-a716-446655440001' + id: '550e8400-e29b-41d4-a716-446655440000' + organization_id: 'org_xyz789' + user_id: 'user_abc123' total_count: 1 schema: $ref: '#/components/schemas/ListMemberAssignmentsResponse' - description: List of member assignments + description: 'List of member assignments' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List all member assignments + description: 'Internal Server Error - Unexpected server error' + summary: 'List all member assignments' tags: - - Guardrails - x-speakeasy-name-override: listMemberAssignments + - 'Guardrails' + x-speakeasy-name-override: 'listMemberAssignments' x-speakeasy-pagination: inputs: - - in: parameters - name: offset - type: offset - - in: parameters - name: limit - type: limit + - in: 'parameters' + name: 'offset' + type: 'offset' + - in: 'parameters' + name: 'limit' + type: 'limit' outputs: - results: $.data - type: offsetLimit + results: '$.data' + type: 'offsetLimit' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /images: post: - description: Generates an image from a text prompt via the image generation router - operationId: createImages + description: 'Generates an image from a text prompt via the image generation router' + operationId: 'createImages' requestBody: content: application/json: example: - model: bytedance-seed/seedream-4.5 - prompt: a red panda astronaut floating in space, studio lighting + model: 'bytedance-seed/seedream-4.5' + prompt: 'a red panda astronaut floating in space, studio lighting' schema: $ref: '#/components/schemas/ImageGenerationRequest' required: true @@ -29270,7 +29289,7 @@ paths: example: created: 1748372400 data: - - b64_json: + - b64_json: '' usage: completion_tokens: 4175 cost: 0.04 @@ -29281,136 +29300,135 @@ paths: text/event-stream: example: data: - b64_json: + b64_json: '' partial_image_index: 0 - type: image_generation.partial_image + type: 'image_generation.partial_image' schema: $ref: '#/components/schemas/ImageStreamingResponse' x-speakeasy-sse-sentinel: '[DONE]' - description: Image generation response + description: 'Image generation response' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '402': content: application/json: example: error: code: 402 - message: Insufficient credits. Add more using https://openrouter.ai/credits + message: 'Insufficient credits. Add more using https://openrouter.ai/credits' schema: $ref: '#/components/schemas/PaymentRequiredResponse' - description: Payment Required - Insufficient credits or quota to complete request + description: 'Payment Required - Insufficient credits or quota to complete request' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '413': content: application/json: example: error: code: 413 - message: Request payload too large + message: 'Request payload too large' schema: $ref: '#/components/schemas/PayloadTooLargeResponse' - description: Payload Too Large - Request payload exceeds size limits + description: 'Payload Too Large - Request payload exceeds size limits' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' '502': content: application/json: example: error: code: 502 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/BadGatewayResponse' - description: Bad Gateway - Provider/upstream API failure + description: 'Bad Gateway - Provider/upstream API failure' '524': content: application/json: example: error: code: 524 - message: Request timed out. Please try again later. + message: 'Request timed out. Please try again later.' schema: $ref: '#/components/schemas/EdgeNetworkTimeoutResponse' - description: Infrastructure Timeout - Provider request timed out at edge network + description: 'Infrastructure Timeout - Provider request timed out at edge network' '529': content: application/json: example: error: code: 529 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/ProviderOverloadedResponse' - description: Provider Overloaded - Provider is temporarily overloaded - summary: Generate an image + description: 'Provider Overloaded - Provider is temporarily overloaded' + summary: 'Generate an image' tags: - - Images - x-speakeasy-name-override: generate + - 'Images' + x-speakeasy-name-override: 'generate' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /images/models: get: - description: >- - Lists every image generation model with its top-level supported-parameter superset and a URL to its full per-endpoint records. - operationId: listImageModels + description: 'Lists every image generation model with its top-level supported-parameter superset and a URL to its full per-endpoint records.' + operationId: 'listImageModels' responses: '200': content: @@ -29419,65 +29437,64 @@ paths: data: - architecture: input_modalities: - - text + - 'text' output_modalities: - - image + - 'image' created: 1692901234 - description: A text-to-image model. - endpoints: /api/v1/images/models/bytedance-seed/seedream-4.5/endpoints - id: bytedance-seed/seedream-4.5 - name: Seedream 4.5 + description: 'A text-to-image model.' + endpoints: '/api/v1/images/models/bytedance-seed/seedream-4.5/endpoints' + id: 'bytedance-seed/seedream-4.5' + name: 'Seedream 4.5' supported_parameters: resolution: - type: enum + type: 'enum' values: - - 1K - - 2K - - 4K + - '1K' + - '2K' + - '4K' supports_streaming: false schema: $ref: '#/components/schemas/ImageModelsListResponse' - description: List of image generation models + description: 'List of image generation models' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List image generation models + description: 'Internal Server Error - Unexpected server error' + summary: 'List image generation models' tags: - - Images - x-speakeasy-name-override: listModels + - 'Images' + x-speakeasy-name-override: 'listModels' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /images/models/{author}/{slug}/endpoints: get: - description: >- - Returns the full per-endpoint records for an image model: each endpoint's definitive supported parameters, pricing, and passthrough allowlist. - operationId: listImageModelEndpoints + description: 'Returns the full per-endpoint records for an image model: each endpoint''s definitive supported parameters, pricing, and passthrough allowlist.' + operationId: 'listImageModelEndpoints' parameters: - - description: Model author/organization - in: path - name: author + - description: 'Model author/organization' + in: 'path' + name: 'author' required: true schema: - description: Model author/organization - example: bytedance-seed - type: string - - description: Model slug - in: path - name: slug + description: 'Model author/organization' + example: 'bytedance-seed' + type: 'string' + - description: 'Model slug' + in: 'path' + name: 'slug' required: true schema: - description: Model slug - example: seedream-4.5 - type: string + description: 'Model slug' + example: 'seedream-4.5' + type: 'string' responses: '200': content: @@ -29486,56 +29503,56 @@ paths: endpoints: - allowed_passthrough_parameters: [] pricing: - - billable: output_image + - billable: 'output_image' cost_usd: 0.05 - unit: image - provider_name: Bytedance - provider_slug: bytedance - provider_tag: bytedance + unit: 'image' + provider_name: 'Bytedance' + provider_slug: 'bytedance' + provider_tag: 'bytedance' supported_parameters: resolution: - type: enum + type: 'enum' values: - - 1K - - 2K - - 4K + - '1K' + - '2K' + - '4K' supports_streaming: false - id: bytedance-seed/seedream-4.5 + id: 'bytedance-seed/seedream-4.5' schema: $ref: '#/components/schemas/ImageModelEndpointsResponse' - description: The full per-endpoint records for an image model + description: 'The full per-endpoint records for an image model' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List endpoints for an image model + description: 'Internal Server Error - Unexpected server error' + summary: 'List endpoints for an image model' tags: - - Images - x-speakeasy-name-override: listModelEndpoints + - 'Images' + x-speakeasy-name-override: 'listModelEndpoints' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /key: get: - description: Get information on the API key associated with the current authentication session - operationId: getCurrentKey + description: 'Get information on the API key associated with the current authentication session' + operationId: 'getCurrentKey' responses: '200': content: @@ -29546,19 +29563,19 @@ paths: byok_usage_daily: 17.38 byok_usage_monthly: 17.38 byok_usage_weekly: 17.38 - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' expires_at: '2027-12-31T23:59:59Z' include_byok_in_limit: false is_free_tier: false is_management_key: false is_provisioning_key: false - label: sk-or-v1-au7...890 + label: 'sk-or-v1-au7...890' limit: 100 limit_remaining: 74.5 - limit_reset: monthly + limit_reset: 'monthly' rate_limit: - interval: 1h - note: This field is deprecated and safe to ignore. + interval: '1h' + note: 'This field is deprecated and safe to ignore.' requests: 1000 usage: 25.5 usage_daily: 25.5 @@ -29571,19 +29588,19 @@ paths: byok_usage_daily: 17.38 byok_usage_monthly: 17.38 byok_usage_weekly: 17.38 - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' expires_at: '2027-12-31T23:59:59Z' include_byok_in_limit: false is_free_tier: false is_management_key: false is_provisioning_key: false - label: sk-or-v1-au7...890 + label: 'sk-or-v1-au7...890' limit: 100 limit_remaining: 74.5 - limit_reset: monthly + limit_reset: 'monthly' rate_limit: - interval: 1h - note: This field is deprecated and safe to ignore. + interval: '1h' + note: 'This field is deprecated and safe to ignore.' requests: 1000 usage: 25.5 usage_daily: 25.5 @@ -29591,25 +29608,25 @@ paths: usage_weekly: 25.5 properties: data: - description: Current API key information + description: 'Current API key information' example: byok_usage: 17.38 byok_usage_daily: 17.38 byok_usage_monthly: 17.38 byok_usage_weekly: 17.38 - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' expires_at: '2027-12-31T23:59:59Z' include_byok_in_limit: false is_free_tier: false is_management_key: false is_provisioning_key: false - label: sk-or-v1-au7...890 + label: 'sk-or-v1-au7...890' limit: 100 limit_remaining: 74.5 - limit_reset: monthly + limit_reset: 'monthly' rate_limit: - interval: 1h - note: This field is deprecated and safe to ignore. + interval: '1h' + note: 'This field is deprecated and safe to ignore.' requests: 1000 usage: 25.5 usage_daily: 25.5 @@ -29617,206 +29634,211 @@ paths: usage_weekly: 25.5 properties: byok_usage: - description: Total external BYOK usage (in USD) for the API key + description: 'Total external BYOK usage (in USD) for the API key' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' byok_usage_daily: - description: External BYOK usage (in USD) for the current UTC day + description: 'External BYOK usage (in USD) for the current UTC day' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' byok_usage_monthly: - description: External BYOK usage (in USD) for current UTC month + description: 'External BYOK usage (in USD) for current UTC month' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' byok_usage_weekly: - description: External BYOK usage (in USD) for the current UTC week (Monday-Sunday) + description: 'External BYOK usage (in USD) for the current UTC week (Monday-Sunday)' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' creator_user_id: - description: >- - The user ID of the key creator. For organization-owned keys, this is the member who created the key. For individual users, this is the user's own ID. - example: user_2dHFtVWx2n56w6HkM0000000000 - nullable: true - type: string + description: 'The user ID of the key creator. For organization-owned keys, this is the member who created the key. For individual users, this is the user''s own ID.' + example: 'user_2dHFtVWx2n56w6HkM0000000000' + type: + - 'string' + - 'null' expires_at: - description: ISO 8601 UTC timestamp when the API key expires, or null if no expiration + description: 'ISO 8601 UTC timestamp when the API key expires, or null if no expiration' example: '2027-12-31T23:59:59Z' - format: date-time - nullable: true - type: string + format: 'date-time' + type: + - 'string' + - 'null' include_byok_in_limit: - description: Whether to include external BYOK usage in the credit limit + description: 'Whether to include external BYOK usage in the credit limit' example: false - type: boolean + type: 'boolean' is_free_tier: - description: Whether this is a free tier API key + description: 'Whether this is a free tier API key' example: false - type: boolean + type: 'boolean' is_management_key: - description: Whether this is a management key + description: 'Whether this is a management key' example: false - type: boolean + type: 'boolean' is_provisioning_key: deprecated: true - description: Whether this is a management key + description: 'Whether this is a management key' example: false - type: boolean + type: 'boolean' label: - description: Human-readable label for the API key - example: sk-or-v1-0e6...1c96 - type: string + description: 'Human-readable label for the API key' + example: 'sk-or-v1-0e6...1c96' + type: 'string' limit: - description: Spending limit for the API key in USD + description: 'Spending limit for the API key in USD' example: 100 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' limit_remaining: - description: Remaining spending limit in USD + description: 'Remaining spending limit in USD' example: 74.5 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' limit_reset: - description: Type of limit reset for the API key - example: monthly - nullable: true - type: string + description: 'Type of limit reset for the API key' + example: 'monthly' + type: + - 'string' + - 'null' rate_limit: deprecated: true - description: Legacy rate limit information about a key. Will always return -1. + description: 'Legacy rate limit information about a key. Will always return -1.' example: - interval: 1h - note: This field is deprecated and safe to ignore. + interval: '1h' + note: 'This field is deprecated and safe to ignore.' requests: 1000 properties: interval: - description: Rate limit interval - example: 1h - type: string + description: 'Rate limit interval' + example: '1h' + type: 'string' note: - description: Note about the rate limit - example: This field is deprecated and safe to ignore. - type: string + description: 'Note about the rate limit' + example: 'This field is deprecated and safe to ignore.' + type: 'string' requests: - description: Number of requests allowed per interval + description: 'Number of requests allowed per interval' example: 1000 - type: integer + type: 'integer' required: - - requests - - interval - - note - type: object + - 'requests' + - 'interval' + - 'note' + type: 'object' usage: - description: Total OpenRouter credit usage (in USD) for the API key + description: 'Total OpenRouter credit usage (in USD) for the API key' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' usage_daily: - description: OpenRouter credit usage (in USD) for the current UTC day + description: 'OpenRouter credit usage (in USD) for the current UTC day' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' usage_monthly: - description: OpenRouter credit usage (in USD) for the current UTC month + description: 'OpenRouter credit usage (in USD) for the current UTC month' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' usage_weekly: - description: OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday) + description: 'OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday)' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' required: - - label - - limit - - usage - - usage_daily - - usage_weekly - - usage_monthly - - byok_usage - - byok_usage_daily - - byok_usage_weekly - - byok_usage_monthly - - is_free_tier - - is_management_key - - is_provisioning_key - - limit_remaining - - limit_reset - - include_byok_in_limit - - creator_user_id - - rate_limit - type: object + - 'label' + - 'limit' + - 'usage' + - 'usage_daily' + - 'usage_weekly' + - 'usage_monthly' + - 'byok_usage' + - 'byok_usage_daily' + - 'byok_usage_weekly' + - 'byok_usage_monthly' + - 'is_free_tier' + - 'is_management_key' + - 'is_provisioning_key' + - 'limit_remaining' + - 'limit_reset' + - 'include_byok_in_limit' + - 'creator_user_id' + - 'rate_limit' + type: 'object' required: - - data - type: object - description: API key details + - 'data' + type: 'object' + description: 'API key details' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Get current API key + description: 'Internal Server Error - Unexpected server error' + summary: 'Get current API key' tags: - - API Keys - x-speakeasy-name-override: getCurrentKeyMetadata + - 'API Keys' + x-speakeasy-name-override: 'getCurrentKeyMetadata' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /keys: get: - description: >- - List all API keys for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: list + description: 'List all API keys for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'list' parameters: - - description: Whether to include disabled API keys in the response - in: query - name: include_disabled + - description: 'Whether to include disabled API keys in the response' + in: 'query' + name: 'include_disabled' required: false schema: - description: Whether to include disabled API keys in the response + description: 'Whether to include disabled API keys in the response' example: 'false' - type: boolean - x-openrouter-type: boolean - - description: Number of API keys to skip for pagination - in: query - name: offset + type: 'boolean' + x-openrouter-type: 'boolean' + - description: 'Number of API keys to skip for pagination' + in: 'query' + name: 'offset' required: false schema: - description: Number of API keys to skip for pagination + description: 'Number of API keys to skip for pagination' example: 0 minimum: 0 + type: + - 'integer' + - 'null' nullable: false - type: integer - - description: Filter API keys by workspace ID. By default, keys in the default workspace are returned. - in: query - name: workspace_id + - description: 'Filter API keys by workspace ID. By default, keys in the default workspace are returned.' + in: 'query' + name: 'workspace_id' required: false schema: - description: Filter API keys by workspace ID. By default, keys in the default workspace are returned. - example: 0df9e665-d932-5740-b2c7-b52af166bc11 - format: uuid - type: string + description: 'Filter API keys by workspace ID. By default, keys in the default workspace are returned.' + example: '0df9e665-d932-5740-b2c7-b52af166bc11' + format: 'uuid' + type: 'string' responses: '200': content: @@ -29828,22 +29850,22 @@ paths: byok_usage_monthly: 17.38 byok_usage_weekly: 17.38 created_at: '2025-08-24T10:30:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' disabled: false expires_at: '2027-12-31T23:59:59Z' - hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 + hash: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' include_byok_in_limit: false - label: Production API Key + label: 'Production API Key' limit: 100 limit_remaining: 74.5 - limit_reset: monthly - name: My Production Key + limit_reset: 'monthly' + name: 'My Production Key' updated_at: '2025-08-24T15:45:00Z' usage: 25.5 usage_daily: 25.5 usage_monthly: 25.5 usage_weekly: 25.5 - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' schema: example: data: @@ -29852,25 +29874,25 @@ paths: byok_usage_monthly: 17.38 byok_usage_weekly: 17.38 created_at: '2025-08-24T10:30:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' disabled: false expires_at: '2027-12-31T23:59:59Z' - hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 + hash: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' include_byok_in_limit: false - label: Production API Key + label: 'Production API Key' limit: 100 limit_remaining: 74.5 - limit_reset: monthly - name: My Production Key + limit_reset: 'monthly' + name: 'My Production Key' updated_at: '2025-08-24T15:45:00Z' usage: 25.5 usage_daily: 25.5 usage_monthly: 25.5 usage_weekly: 25.5 - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' properties: data: - description: List of API keys + description: 'List of API keys' items: example: byok_usage: 17.38 @@ -29878,190 +29900,194 @@ paths: byok_usage_monthly: 17.38 byok_usage_weekly: 17.38 created_at: '2025-08-24T10:30:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' disabled: false expires_at: '2027-12-31T23:59:59Z' - hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 + hash: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' include_byok_in_limit: false - label: sk-or-v1-0e6...1c96 + label: 'sk-or-v1-0e6...1c96' limit: 100 limit_remaining: 74.5 - limit_reset: monthly - name: My Production Key + limit_reset: 'monthly' + name: 'My Production Key' updated_at: '2025-08-24T15:45:00Z' usage: 25.5 usage_daily: 25.5 usage_monthly: 25.5 usage_weekly: 25.5 - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' properties: byok_usage: - description: Total external BYOK usage (in USD) for the API key + description: 'Total external BYOK usage (in USD) for the API key' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' byok_usage_daily: - description: External BYOK usage (in USD) for the current UTC day + description: 'External BYOK usage (in USD) for the current UTC day' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' byok_usage_monthly: - description: External BYOK usage (in USD) for current UTC month + description: 'External BYOK usage (in USD) for current UTC month' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' byok_usage_weekly: - description: External BYOK usage (in USD) for the current UTC week (Monday-Sunday) + description: 'External BYOK usage (in USD) for the current UTC week (Monday-Sunday)' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' created_at: - description: ISO 8601 timestamp of when the API key was created + description: 'ISO 8601 timestamp of when the API key was created' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' creator_user_id: - description: >- - The user ID of the key creator. For organization-owned keys, this is the member who created the key. For individual users, this is the user's own ID. - example: user_2dHFtVWx2n56w6HkM0000000000 - nullable: true - type: string + description: 'The user ID of the key creator. For organization-owned keys, this is the member who created the key. For individual users, this is the user''s own ID.' + example: 'user_2dHFtVWx2n56w6HkM0000000000' + type: + - 'string' + - 'null' disabled: - description: Whether the API key is disabled + description: 'Whether the API key is disabled' example: false - type: boolean + type: 'boolean' expires_at: - description: ISO 8601 UTC timestamp when the API key expires, or null if no expiration + description: 'ISO 8601 UTC timestamp when the API key expires, or null if no expiration' example: '2027-12-31T23:59:59Z' - format: date-time - nullable: true - type: string + format: 'date-time' + type: + - 'string' + - 'null' hash: - description: Unique hash identifier for the API key - example: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 - type: string + description: 'Unique hash identifier for the API key' + example: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' + type: 'string' include_byok_in_limit: - description: Whether to include external BYOK usage in the credit limit + description: 'Whether to include external BYOK usage in the credit limit' example: false - type: boolean + type: 'boolean' label: - description: Human-readable label for the API key - example: sk-or-v1-0e6...1c96 - type: string + description: 'Human-readable label for the API key' + example: 'sk-or-v1-0e6...1c96' + type: 'string' limit: - description: Spending limit for the API key in USD + description: 'Spending limit for the API key in USD' example: 100 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' limit_remaining: - description: Remaining spending limit in USD + description: 'Remaining spending limit in USD' example: 74.5 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' limit_reset: - description: Type of limit reset for the API key - example: monthly - nullable: true - type: string + description: 'Type of limit reset for the API key' + example: 'monthly' + type: + - 'string' + - 'null' name: - description: Name of the API key - example: My Production Key - type: string + description: 'Name of the API key' + example: 'My Production Key' + type: 'string' updated_at: - description: ISO 8601 timestamp of when the API key was last updated + description: 'ISO 8601 timestamp of when the API key was last updated' example: '2025-08-24T15:45:00Z' - nullable: true - type: string + type: + - 'string' + - 'null' usage: - description: Total OpenRouter credit usage (in USD) for the API key + description: 'Total OpenRouter credit usage (in USD) for the API key' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' usage_daily: - description: OpenRouter credit usage (in USD) for the current UTC day + description: 'OpenRouter credit usage (in USD) for the current UTC day' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' usage_monthly: - description: OpenRouter credit usage (in USD) for the current UTC month + description: 'OpenRouter credit usage (in USD) for the current UTC month' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' usage_weekly: - description: OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday) + description: 'OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday)' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' workspace_id: - description: The workspace ID this API key belongs to. - example: 0df9e665-d932-5740-b2c7-b52af166bc11 - type: string + description: 'The workspace ID this API key belongs to.' + example: '0df9e665-d932-5740-b2c7-b52af166bc11' + type: 'string' required: - - hash - - name - - label - - disabled - - limit - - limit_remaining - - limit_reset - - include_byok_in_limit - - usage - - usage_daily - - usage_weekly - - usage_monthly - - byok_usage - - byok_usage_daily - - byok_usage_weekly - - byok_usage_monthly - - created_at - - updated_at - - creator_user_id - - workspace_id - type: object - type: array + - 'hash' + - 'name' + - 'label' + - 'disabled' + - 'limit' + - 'limit_remaining' + - 'limit_reset' + - 'include_byok_in_limit' + - 'usage' + - 'usage_daily' + - 'usage_weekly' + - 'usage_monthly' + - 'byok_usage' + - 'byok_usage_daily' + - 'byok_usage_weekly' + - 'byok_usage_monthly' + - 'created_at' + - 'updated_at' + - 'creator_user_id' + - 'workspace_id' + type: 'object' + type: 'array' required: - - data - type: object - description: List of API keys + - 'data' + type: 'object' + description: 'List of API keys' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List API keys + description: 'Internal Server Error - Unexpected server error' + summary: 'List API keys' tags: - - API Keys - x-speakeasy-name-override: list + - 'API Keys' + x-speakeasy-name-override: 'list' post: - description: >- - Create a new API key for the authenticated user. The plaintext `key` is returned only in this response. Treat it as a write-only, sensitive value; it cannot be retrieved later. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: createKeys + description: 'Create a new API key for the authenticated user. The plaintext `key` is returned only in this response. Treat it as a write-only, sensitive value; it cannot be retrieved later. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'createKeys' requestBody: content: application/json: @@ -30069,65 +30095,66 @@ paths: expires_at: '2027-12-31T23:59:59Z' include_byok_in_limit: true limit: 50 - limit_reset: monthly - name: My New API Key + limit_reset: 'monthly' + name: 'My New API Key' schema: example: expires_at: '2027-12-31T23:59:59Z' include_byok_in_limit: true limit: 50 - limit_reset: monthly - name: My New API Key + limit_reset: 'monthly' + name: 'My New API Key' properties: creator_user_id: - description: >- - Optional user ID of the key creator. Only meaningful for organization-owned keys where a specific member is creating the key. - example: user_2dHFtVWx2n56w6HkM0000000000 + description: 'Optional user ID of the key creator. Only meaningful for organization-owned keys where a specific member is creating the key.' + example: 'user_2dHFtVWx2n56w6HkM0000000000' minLength: 1 - nullable: true - type: string + type: + - 'string' + - 'null' expires_at: - description: >- - Optional ISO 8601 UTC timestamp when the API key should expire. Must be UTC, other timezones will be rejected + description: 'Optional ISO 8601 UTC timestamp when the API key should expire. Must be UTC, other timezones will be rejected' example: '2027-12-31T23:59:59Z' - format: date-time - nullable: true - type: string + format: 'date-time' + type: + - 'string' + - 'null' include_byok_in_limit: - description: Whether to include BYOK usage in the limit + description: 'Whether to include BYOK usage in the limit' example: true - type: boolean + type: 'boolean' limit: - description: Optional spending limit for the API key in USD + description: 'Optional spending limit for the API key in USD' example: 50 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' limit_reset: - description: >- - Type of limit reset for the API key (daily, weekly, monthly, or null for no reset). Resets happen automatically at midnight UTC, and weeks are Monday through Sunday. + description: 'Type of limit reset for the API key (daily, weekly, monthly, or null for no reset). Resets happen automatically at midnight UTC, and weeks are Monday through Sunday.' enum: - - daily - - weekly - - monthly + - 'daily' + - 'weekly' + - 'monthly' - null - example: monthly - nullable: true - type: string + example: 'monthly' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow name: - description: Name for the new API key - example: My New API Key + description: 'Name for the new API key' + example: 'My New API Key' minLength: 1 - type: string + type: 'string' workspace_id: - description: The workspace to create the API key in. Defaults to the default workspace if not provided. - example: 0df9e665-d932-5740-b2c7-b52af166bc11 - format: uuid - type: string + description: 'The workspace to create the API key in. Defaults to the default workspace if not provided.' + example: '0df9e665-d932-5740-b2c7-b52af166bc11' + format: 'uuid' + type: 'string' required: - - name - type: object + - 'name' + type: 'object' required: true responses: '201': @@ -30140,23 +30167,23 @@ paths: byok_usage_monthly: 0 byok_usage_weekly: 0 created_at: '2025-08-24T10:30:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' disabled: false expires_at: '2027-12-31T23:59:59Z' - hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 + hash: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' include_byok_in_limit: true - label: My New API Key + label: 'My New API Key' limit: 50 limit_remaining: 50 - limit_reset: monthly - name: My New API Key + limit_reset: 'monthly' + name: 'My New API Key' updated_at: null usage: 0 usage_daily: 0 usage_monthly: 0 usage_weekly: 0 - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 - key: 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 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' + key: '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' schema: example: data: @@ -30165,253 +30192,258 @@ paths: byok_usage_monthly: 0 byok_usage_weekly: 0 created_at: '2025-08-24T10:30:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' disabled: false expires_at: '2027-12-31T23:59:59Z' - hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 + hash: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' include_byok_in_limit: true - label: My New API Key + label: 'My New API Key' limit: 50 limit_remaining: 50 - limit_reset: monthly - name: My New API Key + limit_reset: 'monthly' + name: 'My New API Key' updated_at: null usage: 0 usage_daily: 0 usage_monthly: 0 usage_weekly: 0 - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 - key: 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 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' + key: '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' properties: data: - description: The created API key information + description: 'The created API key information' example: byok_usage: 17.38 byok_usage_daily: 17.38 byok_usage_monthly: 17.38 byok_usage_weekly: 17.38 created_at: '2025-08-24T10:30:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' disabled: false expires_at: '2027-12-31T23:59:59Z' - hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 + hash: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' include_byok_in_limit: false - label: sk-or-v1-0e6...1c96 + label: 'sk-or-v1-0e6...1c96' limit: 100 limit_remaining: 74.5 - limit_reset: monthly - name: My Production Key + limit_reset: 'monthly' + name: 'My Production Key' updated_at: '2025-08-24T15:45:00Z' usage: 25.5 usage_daily: 25.5 usage_monthly: 25.5 usage_weekly: 25.5 - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' properties: byok_usage: - description: Total external BYOK usage (in USD) for the API key + description: 'Total external BYOK usage (in USD) for the API key' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' byok_usage_daily: - description: External BYOK usage (in USD) for the current UTC day + description: 'External BYOK usage (in USD) for the current UTC day' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' byok_usage_monthly: - description: External BYOK usage (in USD) for current UTC month + description: 'External BYOK usage (in USD) for current UTC month' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' byok_usage_weekly: - description: External BYOK usage (in USD) for the current UTC week (Monday-Sunday) + description: 'External BYOK usage (in USD) for the current UTC week (Monday-Sunday)' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' created_at: - description: ISO 8601 timestamp of when the API key was created + description: 'ISO 8601 timestamp of when the API key was created' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' creator_user_id: - description: >- - The user ID of the key creator. For organization-owned keys, this is the member who created the key. For individual users, this is the user's own ID. - example: user_2dHFtVWx2n56w6HkM0000000000 - nullable: true - type: string + description: 'The user ID of the key creator. For organization-owned keys, this is the member who created the key. For individual users, this is the user''s own ID.' + example: 'user_2dHFtVWx2n56w6HkM0000000000' + type: + - 'string' + - 'null' disabled: - description: Whether the API key is disabled + description: 'Whether the API key is disabled' example: false - type: boolean + type: 'boolean' expires_at: - description: ISO 8601 UTC timestamp when the API key expires, or null if no expiration + description: 'ISO 8601 UTC timestamp when the API key expires, or null if no expiration' example: '2027-12-31T23:59:59Z' - format: date-time - nullable: true - type: string + format: 'date-time' + type: + - 'string' + - 'null' hash: - description: Unique hash identifier for the API key - example: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 - type: string + description: 'Unique hash identifier for the API key' + example: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' + type: 'string' include_byok_in_limit: - description: Whether to include external BYOK usage in the credit limit + description: 'Whether to include external BYOK usage in the credit limit' example: false - type: boolean + type: 'boolean' label: - description: Human-readable label for the API key - example: sk-or-v1-0e6...1c96 - type: string + description: 'Human-readable label for the API key' + example: 'sk-or-v1-0e6...1c96' + type: 'string' limit: - description: Spending limit for the API key in USD + description: 'Spending limit for the API key in USD' example: 100 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' limit_remaining: - description: Remaining spending limit in USD + description: 'Remaining spending limit in USD' example: 74.5 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' limit_reset: - description: Type of limit reset for the API key - example: monthly - nullable: true - type: string + description: 'Type of limit reset for the API key' + example: 'monthly' + type: + - 'string' + - 'null' name: - description: Name of the API key - example: My Production Key - type: string + description: 'Name of the API key' + example: 'My Production Key' + type: 'string' updated_at: - description: ISO 8601 timestamp of when the API key was last updated + description: 'ISO 8601 timestamp of when the API key was last updated' example: '2025-08-24T15:45:00Z' - nullable: true - type: string + type: + - 'string' + - 'null' usage: - description: Total OpenRouter credit usage (in USD) for the API key + description: 'Total OpenRouter credit usage (in USD) for the API key' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' usage_daily: - description: OpenRouter credit usage (in USD) for the current UTC day + description: 'OpenRouter credit usage (in USD) for the current UTC day' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' usage_monthly: - description: OpenRouter credit usage (in USD) for the current UTC month + description: 'OpenRouter credit usage (in USD) for the current UTC month' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' usage_weekly: - description: OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday) + description: 'OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday)' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' workspace_id: - description: The workspace ID this API key belongs to. - example: 0df9e665-d932-5740-b2c7-b52af166bc11 - type: string + description: 'The workspace ID this API key belongs to.' + example: '0df9e665-d932-5740-b2c7-b52af166bc11' + type: 'string' required: - - hash - - name - - label - - disabled - - limit - - limit_remaining - - limit_reset - - include_byok_in_limit - - usage - - usage_daily - - usage_weekly - - usage_monthly - - byok_usage - - byok_usage_daily - - byok_usage_weekly - - byok_usage_monthly - - created_at - - updated_at - - creator_user_id - - workspace_id - type: object + - 'hash' + - 'name' + - 'label' + - 'disabled' + - 'limit' + - 'limit_remaining' + - 'limit_reset' + - 'include_byok_in_limit' + - 'usage' + - 'usage_daily' + - 'usage_weekly' + - 'usage_monthly' + - 'byok_usage' + - 'byok_usage_daily' + - 'byok_usage_weekly' + - 'byok_usage_monthly' + - 'created_at' + - 'updated_at' + - 'creator_user_id' + - 'workspace_id' + type: 'object' key: - description: The actual API key string (only shown once) - example: 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 - type: string + description: 'The actual API key string (only shown once)' + example: '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' + type: 'string' required: - - data - - key - type: object - description: API key created successfully + - 'data' + - 'key' + type: 'object' + description: 'API key created successfully' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Create a new API key + description: 'Internal Server Error - Unexpected server error' + summary: 'Create a new API key' tags: - - API Keys - x-speakeasy-name-override: create + - 'API Keys' + x-speakeasy-name-override: 'create' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /keys/{hash}: delete: - description: Delete an existing API key. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: deleteKeys + description: 'Delete an existing API key. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'deleteKeys' parameters: - - description: The hash identifier of the API key to delete - in: path - name: hash + - description: 'The hash identifier of the API key to delete' + in: 'path' + name: 'hash' required: true schema: - description: The hash identifier of the API key to delete - example: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 - type: string + description: 'The hash identifier of the API key to delete' + example: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' + type: 'string' responses: '200': content: @@ -30424,69 +30456,69 @@ paths: properties: deleted: const: true - description: Confirmation that the API key was deleted + description: 'Confirmation that the API key was deleted' example: true - type: boolean + type: 'boolean' required: - - deleted - type: object - description: API key deleted successfully + - 'deleted' + type: 'object' + description: 'API key deleted successfully' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Delete an API key + description: 'Internal Server Error - Unexpected server error' + summary: 'Delete an API key' tags: - - API Keys - x-speakeasy-name-override: delete + - 'API Keys' + x-speakeasy-name-override: 'delete' get: - description: Get a single API key by hash. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: getKey + description: 'Get a single API key by hash. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'getKey' parameters: - - description: The hash identifier of the API key to retrieve - in: path - name: hash + - description: 'The hash identifier of the API key to retrieve' + in: 'path' + name: 'hash' required: true schema: - description: The hash identifier of the API key to retrieve - example: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 - type: string + description: 'The hash identifier of the API key to retrieve' + example: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' + type: 'string' responses: '200': content: @@ -30498,22 +30530,22 @@ paths: byok_usage_monthly: 17.38 byok_usage_weekly: 17.38 created_at: '2025-08-24T10:30:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' disabled: false expires_at: '2027-12-31T23:59:59Z' - hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 + hash: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' include_byok_in_limit: false - label: Production API Key + label: 'Production API Key' limit: 100 limit_remaining: 74.5 - limit_reset: monthly - name: My Production Key + limit_reset: 'monthly' + name: 'My Production Key' updated_at: '2025-08-24T15:45:00Z' usage: 25.5 usage_daily: 25.5 usage_monthly: 25.5 usage_weekly: 25.5 - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' schema: example: data: @@ -30522,232 +30554,237 @@ paths: byok_usage_monthly: 17.38 byok_usage_weekly: 17.38 created_at: '2025-08-24T10:30:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' disabled: false expires_at: '2027-12-31T23:59:59Z' - hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 + hash: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' include_byok_in_limit: false - label: Production API Key + label: 'Production API Key' limit: 100 limit_remaining: 74.5 - limit_reset: monthly - name: My Production Key + limit_reset: 'monthly' + name: 'My Production Key' updated_at: '2025-08-24T15:45:00Z' usage: 25.5 usage_daily: 25.5 usage_monthly: 25.5 usage_weekly: 25.5 - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' properties: data: - description: The API key information + description: 'The API key information' example: byok_usage: 17.38 byok_usage_daily: 17.38 byok_usage_monthly: 17.38 byok_usage_weekly: 17.38 created_at: '2025-08-24T10:30:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' disabled: false expires_at: '2027-12-31T23:59:59Z' - hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 + hash: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' include_byok_in_limit: false - label: sk-or-v1-0e6...1c96 + label: 'sk-or-v1-0e6...1c96' limit: 100 limit_remaining: 74.5 - limit_reset: monthly - name: My Production Key + limit_reset: 'monthly' + name: 'My Production Key' updated_at: '2025-08-24T15:45:00Z' usage: 25.5 usage_daily: 25.5 usage_monthly: 25.5 usage_weekly: 25.5 - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' properties: byok_usage: - description: Total external BYOK usage (in USD) for the API key + description: 'Total external BYOK usage (in USD) for the API key' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' byok_usage_daily: - description: External BYOK usage (in USD) for the current UTC day + description: 'External BYOK usage (in USD) for the current UTC day' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' byok_usage_monthly: - description: External BYOK usage (in USD) for current UTC month + description: 'External BYOK usage (in USD) for current UTC month' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' byok_usage_weekly: - description: External BYOK usage (in USD) for the current UTC week (Monday-Sunday) + description: 'External BYOK usage (in USD) for the current UTC week (Monday-Sunday)' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' created_at: - description: ISO 8601 timestamp of when the API key was created + description: 'ISO 8601 timestamp of when the API key was created' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' creator_user_id: - description: >- - The user ID of the key creator. For organization-owned keys, this is the member who created the key. For individual users, this is the user's own ID. - example: user_2dHFtVWx2n56w6HkM0000000000 - nullable: true - type: string + description: 'The user ID of the key creator. For organization-owned keys, this is the member who created the key. For individual users, this is the user''s own ID.' + example: 'user_2dHFtVWx2n56w6HkM0000000000' + type: + - 'string' + - 'null' disabled: - description: Whether the API key is disabled + description: 'Whether the API key is disabled' example: false - type: boolean + type: 'boolean' expires_at: - description: ISO 8601 UTC timestamp when the API key expires, or null if no expiration + description: 'ISO 8601 UTC timestamp when the API key expires, or null if no expiration' example: '2027-12-31T23:59:59Z' - format: date-time - nullable: true - type: string + format: 'date-time' + type: + - 'string' + - 'null' hash: - description: Unique hash identifier for the API key - example: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 - type: string + description: 'Unique hash identifier for the API key' + example: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' + type: 'string' include_byok_in_limit: - description: Whether to include external BYOK usage in the credit limit + description: 'Whether to include external BYOK usage in the credit limit' example: false - type: boolean + type: 'boolean' label: - description: Human-readable label for the API key - example: sk-or-v1-0e6...1c96 - type: string + description: 'Human-readable label for the API key' + example: 'sk-or-v1-0e6...1c96' + type: 'string' limit: - description: Spending limit for the API key in USD + description: 'Spending limit for the API key in USD' example: 100 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' limit_remaining: - description: Remaining spending limit in USD + description: 'Remaining spending limit in USD' example: 74.5 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' limit_reset: - description: Type of limit reset for the API key - example: monthly - nullable: true - type: string + description: 'Type of limit reset for the API key' + example: 'monthly' + type: + - 'string' + - 'null' name: - description: Name of the API key - example: My Production Key - type: string + description: 'Name of the API key' + example: 'My Production Key' + type: 'string' updated_at: - description: ISO 8601 timestamp of when the API key was last updated + description: 'ISO 8601 timestamp of when the API key was last updated' example: '2025-08-24T15:45:00Z' - nullable: true - type: string + type: + - 'string' + - 'null' usage: - description: Total OpenRouter credit usage (in USD) for the API key + description: 'Total OpenRouter credit usage (in USD) for the API key' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' usage_daily: - description: OpenRouter credit usage (in USD) for the current UTC day + description: 'OpenRouter credit usage (in USD) for the current UTC day' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' usage_monthly: - description: OpenRouter credit usage (in USD) for the current UTC month + description: 'OpenRouter credit usage (in USD) for the current UTC month' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' usage_weekly: - description: OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday) + description: 'OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday)' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' workspace_id: - description: The workspace ID this API key belongs to. - example: 0df9e665-d932-5740-b2c7-b52af166bc11 - type: string + description: 'The workspace ID this API key belongs to.' + example: '0df9e665-d932-5740-b2c7-b52af166bc11' + type: 'string' required: - - hash - - name - - label - - disabled - - limit - - limit_remaining - - limit_reset - - include_byok_in_limit - - usage - - usage_daily - - usage_weekly - - usage_monthly - - byok_usage - - byok_usage_daily - - byok_usage_weekly - - byok_usage_monthly - - created_at - - updated_at - - creator_user_id - - workspace_id - type: object + - 'hash' + - 'name' + - 'label' + - 'disabled' + - 'limit' + - 'limit_remaining' + - 'limit_reset' + - 'include_byok_in_limit' + - 'usage' + - 'usage_daily' + - 'usage_weekly' + - 'usage_monthly' + - 'byok_usage' + - 'byok_usage_daily' + - 'byok_usage_weekly' + - 'byok_usage_monthly' + - 'created_at' + - 'updated_at' + - 'creator_user_id' + - 'workspace_id' + type: 'object' required: - - data - type: object - description: API key details + - 'data' + type: 'object' + description: 'API key details' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Get a single API key + description: 'Internal Server Error - Unexpected server error' + summary: 'Get a single API key' tags: - - API Keys - x-speakeasy-name-override: get + - 'API Keys' + x-speakeasy-name-override: 'get' patch: - description: Update an existing API key. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: updateKeys + description: 'Update an existing API key. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'updateKeys' parameters: - - description: The hash identifier of the API key to update - in: path - name: hash + - description: 'The hash identifier of the API key to update' + in: 'path' + name: 'hash' required: true schema: - description: The hash identifier of the API key to update - example: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 - type: string + description: 'The hash identifier of the API key to update' + example: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' + type: 'string' requestBody: content: application/json: @@ -30755,47 +30792,48 @@ paths: disabled: false include_byok_in_limit: true limit: 75 - limit_reset: daily - name: Updated API Key Name + limit_reset: 'daily' + name: 'Updated API Key Name' schema: example: disabled: false include_byok_in_limit: true limit: 75 - limit_reset: daily - name: Updated API Key Name + limit_reset: 'daily' + name: 'Updated API Key Name' properties: disabled: - description: Whether to disable the API key + description: 'Whether to disable the API key' example: false - type: boolean + type: 'boolean' include_byok_in_limit: - description: Whether to include BYOK usage in the limit + description: 'Whether to include BYOK usage in the limit' example: true - type: boolean + type: 'boolean' limit: - description: New spending limit for the API key in USD + description: 'New spending limit for the API key in USD' example: 75 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' limit_reset: - description: >- - New limit reset type for the API key (daily, weekly, monthly, or null for no reset). Resets happen automatically at midnight UTC, and weeks are Monday through Sunday. + description: 'New limit reset type for the API key (daily, weekly, monthly, or null for no reset). Resets happen automatically at midnight UTC, and weeks are Monday through Sunday.' enum: - - daily - - weekly - - monthly + - 'daily' + - 'weekly' + - 'monthly' - null - example: daily - nullable: true - type: string + example: 'daily' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow name: - description: New name for the API key - example: Updated API Key Name - type: string - type: object + description: 'New name for the API key' + example: 'Updated API Key Name' + type: 'string' + type: 'object' required: true responses: '200': @@ -30808,22 +30846,22 @@ paths: byok_usage_monthly: 17.38 byok_usage_weekly: 17.38 created_at: '2025-08-24T10:30:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' disabled: false expires_at: null - hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 + hash: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' include_byok_in_limit: true - label: Updated API Key Name + label: 'Updated API Key Name' limit: 75 limit_remaining: 49.5 - limit_reset: daily - name: Updated API Key Name + limit_reset: 'daily' + name: 'Updated API Key Name' updated_at: '2025-08-24T16:00:00Z' usage: 25.5 usage_daily: 25.5 usage_monthly: 25.5 usage_weekly: 25.5 - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' schema: example: data: @@ -30832,245 +30870,248 @@ paths: byok_usage_monthly: 17.38 byok_usage_weekly: 17.38 created_at: '2025-08-24T10:30:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' disabled: false expires_at: null - hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 + hash: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' include_byok_in_limit: true - label: Updated API Key Name + label: 'Updated API Key Name' limit: 75 limit_remaining: 49.5 - limit_reset: daily - name: Updated API Key Name + limit_reset: 'daily' + name: 'Updated API Key Name' updated_at: '2025-08-24T16:00:00Z' usage: 25.5 usage_daily: 25.5 usage_monthly: 25.5 usage_weekly: 25.5 - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' properties: data: - description: The updated API key information + description: 'The updated API key information' example: byok_usage: 17.38 byok_usage_daily: 17.38 byok_usage_monthly: 17.38 byok_usage_weekly: 17.38 created_at: '2025-08-24T10:30:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' disabled: false expires_at: '2027-12-31T23:59:59Z' - hash: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 + hash: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' include_byok_in_limit: false - label: sk-or-v1-0e6...1c96 + label: 'sk-or-v1-0e6...1c96' limit: 100 limit_remaining: 74.5 - limit_reset: monthly - name: My Production Key + limit_reset: 'monthly' + name: 'My Production Key' updated_at: '2025-08-24T15:45:00Z' usage: 25.5 usage_daily: 25.5 usage_monthly: 25.5 usage_weekly: 25.5 - workspace_id: 0df9e665-d932-5740-b2c7-b52af166bc11 + workspace_id: '0df9e665-d932-5740-b2c7-b52af166bc11' properties: byok_usage: - description: Total external BYOK usage (in USD) for the API key + description: 'Total external BYOK usage (in USD) for the API key' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' byok_usage_daily: - description: External BYOK usage (in USD) for the current UTC day + description: 'External BYOK usage (in USD) for the current UTC day' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' byok_usage_monthly: - description: External BYOK usage (in USD) for current UTC month + description: 'External BYOK usage (in USD) for current UTC month' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' byok_usage_weekly: - description: External BYOK usage (in USD) for the current UTC week (Monday-Sunday) + description: 'External BYOK usage (in USD) for the current UTC week (Monday-Sunday)' example: 17.38 - format: double - type: number + format: 'double' + type: 'number' created_at: - description: ISO 8601 timestamp of when the API key was created + description: 'ISO 8601 timestamp of when the API key was created' example: '2025-08-24T10:30:00Z' - type: string + type: 'string' creator_user_id: - description: >- - The user ID of the key creator. For organization-owned keys, this is the member who created the key. For individual users, this is the user's own ID. - example: user_2dHFtVWx2n56w6HkM0000000000 - nullable: true - type: string + description: 'The user ID of the key creator. For organization-owned keys, this is the member who created the key. For individual users, this is the user''s own ID.' + example: 'user_2dHFtVWx2n56w6HkM0000000000' + type: + - 'string' + - 'null' disabled: - description: Whether the API key is disabled + description: 'Whether the API key is disabled' example: false - type: boolean + type: 'boolean' expires_at: - description: ISO 8601 UTC timestamp when the API key expires, or null if no expiration + description: 'ISO 8601 UTC timestamp when the API key expires, or null if no expiration' example: '2027-12-31T23:59:59Z' - format: date-time - nullable: true - type: string + format: 'date-time' + type: + - 'string' + - 'null' hash: - description: Unique hash identifier for the API key - example: f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943 - type: string + description: 'Unique hash identifier for the API key' + example: 'f01d52606dc8f0a8303a7b5cc3fa07109c2e346cec7c0a16b40de462992ce943' + type: 'string' include_byok_in_limit: - description: Whether to include external BYOK usage in the credit limit + description: 'Whether to include external BYOK usage in the credit limit' example: false - type: boolean + type: 'boolean' label: - description: Human-readable label for the API key - example: sk-or-v1-0e6...1c96 - type: string + description: 'Human-readable label for the API key' + example: 'sk-or-v1-0e6...1c96' + type: 'string' limit: - description: Spending limit for the API key in USD + description: 'Spending limit for the API key in USD' example: 100 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' limit_remaining: - description: Remaining spending limit in USD + description: 'Remaining spending limit in USD' example: 74.5 - format: double - nullable: true - type: number + format: 'double' + type: + - 'number' + - 'null' limit_reset: - description: Type of limit reset for the API key - example: monthly - nullable: true - type: string + description: 'Type of limit reset for the API key' + example: 'monthly' + type: + - 'string' + - 'null' name: - description: Name of the API key - example: My Production Key - type: string + description: 'Name of the API key' + example: 'My Production Key' + type: 'string' updated_at: - description: ISO 8601 timestamp of when the API key was last updated + description: 'ISO 8601 timestamp of when the API key was last updated' example: '2025-08-24T15:45:00Z' - nullable: true - type: string + type: + - 'string' + - 'null' usage: - description: Total OpenRouter credit usage (in USD) for the API key + description: 'Total OpenRouter credit usage (in USD) for the API key' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' usage_daily: - description: OpenRouter credit usage (in USD) for the current UTC day + description: 'OpenRouter credit usage (in USD) for the current UTC day' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' usage_monthly: - description: OpenRouter credit usage (in USD) for the current UTC month + description: 'OpenRouter credit usage (in USD) for the current UTC month' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' usage_weekly: - description: OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday) + description: 'OpenRouter credit usage (in USD) for the current UTC week (Monday-Sunday)' example: 25.5 - format: double - type: number + format: 'double' + type: 'number' workspace_id: - description: The workspace ID this API key belongs to. - example: 0df9e665-d932-5740-b2c7-b52af166bc11 - type: string + description: 'The workspace ID this API key belongs to.' + example: '0df9e665-d932-5740-b2c7-b52af166bc11' + type: 'string' required: - - hash - - name - - label - - disabled - - limit - - limit_remaining - - limit_reset - - include_byok_in_limit - - usage - - usage_daily - - usage_weekly - - usage_monthly - - byok_usage - - byok_usage_daily - - byok_usage_weekly - - byok_usage_monthly - - created_at - - updated_at - - creator_user_id - - workspace_id - type: object + - 'hash' + - 'name' + - 'label' + - 'disabled' + - 'limit' + - 'limit_remaining' + - 'limit_reset' + - 'include_byok_in_limit' + - 'usage' + - 'usage_daily' + - 'usage_weekly' + - 'usage_monthly' + - 'byok_usage' + - 'byok_usage_daily' + - 'byok_usage_weekly' + - 'byok_usage_monthly' + - 'created_at' + - 'updated_at' + - 'creator_user_id' + - 'workspace_id' + type: 'object' required: - - data - type: object - description: API key updated successfully + - 'data' + type: 'object' + description: 'API key updated successfully' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Update an API key + description: 'Internal Server Error - Unexpected server error' + summary: 'Update an API key' tags: - - API Keys - x-speakeasy-name-override: update + - 'API Keys' + x-speakeasy-name-override: 'update' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /messages: post: - description: >- - Creates a message using the Anthropic Messages API format. Supports text, images, PDFs, tools, and extended thinking. - operationId: createMessages + description: 'Creates a message using the Anthropic Messages API format. Supports text, images, PDFs, tools, and extended thinking.' + operationId: 'createMessages' parameters: - - description: >- - Opt-in to surface routing metadata on the response under `openrouter_metadata`. Defaults to `disabled`. The legacy header `X-OpenRouter-Experimental-Metadata` is also accepted for backward compatibility. - example: enabled - in: header - name: X-OpenRouter-Metadata + - description: 'Opt-in to surface routing metadata on the response under `openrouter_metadata`. Defaults to `disabled`. The legacy header `X-OpenRouter-Experimental-Metadata` is also accepted for backward compatibility.' + example: 'enabled' + in: 'header' + name: 'X-OpenRouter-Metadata' required: false schema: $ref: '#/components/schemas/MetadataLevel' @@ -31080,9 +31121,9 @@ paths: example: max_tokens: 1024 messages: - - content: Hello, how are you? - role: user - model: anthropic/claude-sonnet-4 + - content: 'Hello, how are you?' + role: 'user' + model: 'anthropic/claude-sonnet-4' schema: $ref: '#/components/schemas/MessagesRequest' required: true @@ -31091,190 +31132,199 @@ paths: content: application/json: example: + container: null content: - - text: I'm doing well, thank you for asking! How can I help you today? - type: text - id: msg_abc123 - model: anthropic/claude-sonnet-4 - role: assistant - stop_reason: end_turn - type: message + - citations: [] + text: 'I''m doing well, thank you for asking! How can I help you today?' + type: 'text' + id: 'msg_abc123' + model: 'anthropic/claude-sonnet-4' + role: 'assistant' + stop_details: null + stop_reason: 'end_turn' + stop_sequence: null + type: 'message' usage: + cache_creation: null + cache_creation_input_tokens: null + cache_read_input_tokens: null + inference_geo: null input_tokens: 12 output_tokens: 18 + output_tokens_details: null + server_tool_use: null + service_tier: 'standard' schema: $ref: '#/components/schemas/MessagesResult' text/event-stream: example: data: delta: - text: Hello - type: text_delta + text: 'Hello' + type: 'text_delta' index: 0 - type: content_block_delta - event: content_block_delta + type: 'content_block_delta' + event: 'content_block_delta' schema: $ref: '#/components/schemas/MessagesStreamingResponse' x-speakeasy-sse-sentinel: '[DONE]' - description: Successful response + description: 'Successful response' '400': content: application/json: example: error: message: 'Invalid request: messages is required' - type: invalid_request_error - type: error + type: 'invalid_request_error' + type: 'error' schema: $ref: '#/components/schemas/MessagesErrorResponse' - description: Invalid request error + description: 'Invalid request error' '401': content: application/json: example: error: - message: Invalid API key - type: authentication_error - type: error + message: 'Invalid API key' + type: 'authentication_error' + type: 'error' schema: $ref: '#/components/schemas/MessagesErrorResponse' - description: Authentication error + description: 'Authentication error' '403': content: application/json: examples: guardrail-blocked: - summary: Guardrail blocked the request + summary: 'Guardrail blocked the request' value: error: code: 403 message: 'Request blocked: prompt injection patterns detected' metadata: patterns: - - ignore all previous instructions + - 'ignore all previous instructions' openrouter_metadata: attempt: 1 endpoints: available: - - model: openai/gpt-4o - provider: OpenAI + - model: 'openai/gpt-4o' + provider: 'OpenAI' selected: false total: 1 is_byok: false pipeline: - data: - action: blocked + action: 'blocked' detected: true engines: - - regex + - 'regex' patterns: - - ignore all previous instructions - guardrail_id: grd_abc123 - guardrail_scope: api-key - name: regex_pi_detection + - 'ignore all previous instructions' + guardrail_id: 'grd_abc123' + guardrail_scope: 'api-key' + name: 'regex_pi_detection' summary: 'Blocked: prompt injection detected (1 pattern matched)' - type: guardrail - region: iad - requested: openai/gpt-4o - strategy: direct - summary: available=1 + type: 'guardrail' + region: 'iad' + requested: 'openai/gpt-4o' + strategy: 'direct' + summary: 'available=1' insufficient-permissions: - summary: Insufficient permissions + summary: 'Insufficient permissions' value: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: >- - Forbidden - Authentication successful but insufficient permissions, or a guardrail blocked the request. When guardrails block and the `X-OpenRouter-Metadata: enabled` header is present, the response includes `openrouter_metadata` with full routing context and a `pipeline` array containing guardrail stage details. + description: 'Forbidden - Authentication successful but insufficient permissions, or a guardrail blocked the request. When guardrails block and the `X-OpenRouter-Metadata: enabled` header is present, the response includes `openrouter_metadata` with full routing context and a `pipeline` array containing guardrail stage details.' '404': content: application/json: example: error: - message: Model not found - type: not_found_error - type: error + message: 'Model not found' + type: 'not_found_error' + type: 'error' schema: $ref: '#/components/schemas/MessagesErrorResponse' - description: Not found error + description: 'Not found error' '429': content: application/json: example: error: - message: Rate limit exceeded - type: rate_limit_error - type: error + message: 'Rate limit exceeded' + type: 'rate_limit_error' + type: 'error' schema: $ref: '#/components/schemas/MessagesErrorResponse' - description: Rate limit error + description: 'Rate limit error' '500': content: application/json: example: error: - message: Internal server error - type: api_error - type: error + message: 'Internal server error' + type: 'api_error' + type: 'error' schema: $ref: '#/components/schemas/MessagesErrorResponse' - description: API error + description: 'API error' '503': content: application/json: example: error: - message: Service temporarily overloaded - type: overloaded_error - type: error + message: 'Service temporarily overloaded' + type: 'overloaded_error' + type: 'error' schema: $ref: '#/components/schemas/MessagesErrorResponse' - description: Overloaded error + description: 'Overloaded error' '529': content: application/json: example: error: - message: Provider is temporarily overloaded - type: overloaded_error - type: error + message: 'Provider is temporarily overloaded' + type: 'overloaded_error' + type: 'error' schema: $ref: '#/components/schemas/MessagesErrorResponse' - description: Overloaded error - summary: Create a message + description: 'Overloaded error' + summary: 'Create a message' tags: - - Anthropic Messages + - 'Anthropic Messages' x-speakeasy-ignore: true - x-speakeasy-name-override: create - x-speakeasy-stream-request-field: stream + x-speakeasy-name-override: 'create' + x-speakeasy-stream-request-field: 'stream' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /model/{author}/{slug}: get: - description: >- - Returns full details for a single model identified by its author and slug (e.g. openai/gpt-4). Supports variant suffixes (e.g. openai/gpt-4:free) and resolves known slug aliases. - operationId: getModel + description: 'Returns full details for a single model identified by its author and slug (e.g. openai/gpt-4). Supports variant suffixes (e.g. openai/gpt-4:free) and resolves known slug aliases.' + operationId: 'getModel' parameters: - - description: The author/organization of the model - in: path - name: author + - description: 'The author/organization of the model' + in: 'path' + name: 'author' required: true schema: - description: The author/organization of the model - example: openai - type: string - - description: The model slug, optionally including a variant suffix (e.g. gpt-4 or gpt-4:free) - in: path - name: slug + description: 'The author/organization of the model' + example: 'openai' + type: 'string' + - description: 'The model slug, optionally including a variant suffix (e.g. gpt-4 or gpt-4:free)' + in: 'path' + name: 'slug' required: true schema: - description: The model slug, optionally including a variant suffix (e.g. gpt-4 or gpt-4:free) - example: gpt-4 - type: string + description: 'The model slug, optionally including a variant suffix (e.g. gpt-4 or gpt-4:free)' + example: 'gpt-4' + type: 'string' responses: '200': content: @@ -31283,17 +31333,23 @@ paths: data: architecture: input_modalities: - - text - instruct_type: chatml - modality: text->text + - 'text' + instruct_type: 'chatml' + modality: 'text->text' output_modalities: - - text - tokenizer: GPT + - 'text' + tokenizer: 'GPT' + canonical_slug: 'openai/gpt-4' context_length: 8192 created: 1692901234 - description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy. - id: openai/gpt-4 - name: GPT-4 + default_parameters: null + description: 'GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.' + expiration_date: null + id: 'openai/gpt-4' + knowledge_cutoff: null + links: + details: '/api/v1/models/openai/gpt-4/endpoints' + name: 'GPT-4' per_request_limits: null pricing: completion: '0.00006' @@ -31301,362 +31357,370 @@ paths: prompt: '0.00003' request: '0' supported_parameters: - - temperature - - top_p - - max_tokens + - 'temperature' + - 'top_p' + - 'max_tokens' + supported_voices: null top_provider: context_length: 8192 is_moderated: true max_completion_tokens: 4096 schema: $ref: '#/components/schemas/ModelResponse' - description: Returns the model details + description: 'Returns the model details' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Get a model by its slug + description: 'Internal Server Error - Unexpected server error' + summary: 'Get a model by its slug' tags: - - Models - x-speakeasy-name-override: get + - 'Models' + x-speakeasy-name-override: 'get' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /models: get: - operationId: getModels + operationId: 'getModels' parameters: - - description: Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned - in: query - name: offset + - description: 'Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned' + in: 'query' + name: 'offset' required: false schema: default: 0 - description: >- - Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned + description: 'Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned' example: 0 minimum: 0 + type: + - 'integer' + - 'null' nullable: false - type: integer - - description: >- - Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned - in: query - name: limit + - description: 'Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned' + in: 'query' + name: 'limit' required: false schema: default: 500 - description: >- - Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned + description: 'Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned' example: 500 maximum: 1000 minimum: 1 - type: integer - - description: Filter models by use case category - in: query - name: category + type: 'integer' + - description: 'Filter models by use case category' + in: 'query' + name: 'category' required: false schema: - description: Filter models by use case category + description: 'Filter models by use case category' enum: - - programming - - roleplay - - marketing - - marketing/seo - - technology - - science - - translation - - legal - - finance - - health - - trivia - - academia - example: programming - type: string + - 'programming' + - 'roleplay' + - 'marketing' + - 'marketing/seo' + - 'technology' + - 'science' + - 'translation' + - 'legal' + - 'finance' + - 'health' + - 'trivia' + - 'academia' + example: 'programming' + type: 'string' x-speakeasy-unknown-values: allow - - description: Filter models by supported parameter (comma-separated) - in: query - name: supported_parameters + - description: 'Filter models by supported parameter (comma-separated)' + in: 'query' + name: 'supported_parameters' required: false schema: - description: Filter models by supported parameter (comma-separated) - example: temperature - type: string - - description: >- - Filter models by output modality. Accepts a comma-separated list of modalities (text, image, audio, embeddings) or "all" to include all models. Defaults to "text". - in: query - name: output_modalities + description: 'Filter models by supported parameter (comma-separated)' + example: 'temperature' + type: 'string' + - description: 'Filter models by output modality. Accepts a comma-separated list of modalities (text, image, audio, embeddings) or "all" to include all models. Defaults to "text".' + in: 'query' + name: 'output_modalities' required: false schema: - description: >- - Filter models by output modality. Accepts a comma-separated list of modalities (text, image, audio, embeddings) or "all" to include all models. Defaults to "text". - example: text - type: string - - description: >- - Sort the returned models server-side. Prefer this over fetching the full list and sorting client-side. Options: pricing-low-to-high, pricing-high-to-low (average prompt/completion price), context-high-to-low (context length), throughput-high-to-low, latency-low-to-high (recent median performance), most-popular, top-weekly (tokens processed in the last week), newest (creation date), intelligence-high-to-low, coding-high-to-low, agentic-high-to-low (Artificial Analysis indices), design-arena-elo-high-to-low (best Design Arena ELO across arenas). Models without a score for the chosen benchmark are placed last. When omitted, the existing default ordering is preserved. - in: query - name: sort + description: 'Filter models by output modality. Accepts a comma-separated list of modalities (text, image, audio, embeddings) or "all" to include all models. Defaults to "text".' + example: 'text' + type: 'string' + - description: 'Sort the returned models server-side. Prefer this over fetching the full list and sorting client-side. Options: pricing-low-to-high, pricing-high-to-low (average prompt/completion price), context-high-to-low (context length), throughput-high-to-low, latency-low-to-high (recent median performance), most-popular, top-weekly (tokens processed in the last week), newest (creation date), intelligence-high-to-low, coding-high-to-low, agentic-high-to-low (Artificial Analysis indices), design-arena-elo-high-to-low (best Design Arena ELO across arenas). Models without a score for the chosen benchmark are placed last. When omitted, the existing default ordering is preserved.' + in: 'query' + name: 'sort' required: false schema: - description: >- - Sort the returned models server-side. Prefer this over fetching the full list and sorting client-side. Options: pricing-low-to-high, pricing-high-to-low (average prompt/completion price), context-high-to-low (context length), throughput-high-to-low, latency-low-to-high (recent median performance), most-popular, top-weekly (tokens processed in the last week), newest (creation date), intelligence-high-to-low, coding-high-to-low, agentic-high-to-low (Artificial Analysis indices), design-arena-elo-high-to-low (best Design Arena ELO across arenas). Models without a score for the chosen benchmark are placed last. When omitted, the existing default ordering is preserved. + description: 'Sort the returned models server-side. Prefer this over fetching the full list and sorting client-side. Options: pricing-low-to-high, pricing-high-to-low (average prompt/completion price), context-high-to-low (context length), throughput-high-to-low, latency-low-to-high (recent median performance), most-popular, top-weekly (tokens processed in the last week), newest (creation date), intelligence-high-to-low, coding-high-to-low, agentic-high-to-low (Artificial Analysis indices), design-arena-elo-high-to-low (best Design Arena ELO across arenas). Models without a score for the chosen benchmark are placed last. When omitted, the existing default ordering is preserved.' enum: - - most-popular - - newest - - top-weekly - - pricing-low-to-high - - pricing-high-to-low - - context-high-to-low - - throughput-high-to-low - - latency-low-to-high - - intelligence-high-to-low - - coding-high-to-low - - agentic-high-to-low - - design-arena-elo-high-to-low - example: newest - type: string + - 'most-popular' + - 'newest' + - 'top-weekly' + - 'pricing-low-to-high' + - 'pricing-high-to-low' + - 'context-high-to-low' + - 'throughput-high-to-low' + - 'latency-low-to-high' + - 'intelligence-high-to-low' + - 'coding-high-to-low' + - 'agentic-high-to-low' + - 'design-arena-elo-high-to-low' + example: 'newest' + type: 'string' x-speakeasy-unknown-values: allow - - description: Free-text search by model name or slug. - in: query - name: q + - description: 'Free-text search by model name or slug.' + in: 'query' + name: 'q' required: false schema: - description: Free-text search by model name or slug. - example: gpt-4 - type: string + description: 'Free-text search by model name or slug.' + example: 'gpt-4' + type: 'string' - description: 'Filter models by input modality. Comma-separated list of: text, image, audio, file.' - in: query - name: input_modalities + in: 'query' + name: 'input_modalities' required: false schema: description: 'Filter models by input modality. Comma-separated list of: text, image, audio, file.' - example: text,image - type: string - - description: Minimum context length (tokens). Models with smaller context are excluded. - in: query - name: context + example: 'text,image' + type: 'string' + - description: 'Minimum context length (tokens). Models with smaller context are excluded.' + in: 'query' + name: 'context' required: false schema: - description: Minimum context length (tokens). Models with smaller context are excluded. + description: 'Minimum context length (tokens). Models with smaller context are excluded.' example: 128000 minimum: 1 - type: integer - - description: Minimum prompt price in $/M tokens. - in: query - name: min_price + type: 'integer' + - description: 'Minimum prompt price in $/M tokens.' + in: 'query' + name: 'min_price' required: false schema: - description: Minimum prompt price in $/M tokens. + description: 'Minimum prompt price in $/M tokens.' example: 0 minimum: 0 - nullable: true - type: number - - description: Maximum prompt price in $/M tokens. - in: query - name: max_price + type: + - 'number' + - 'null' + - description: 'Maximum prompt price in $/M tokens.' + in: 'query' + name: 'max_price' required: false schema: - description: Maximum prompt price in $/M tokens. + description: 'Maximum prompt price in $/M tokens.' example: 10 minimum: 0 - nullable: true - type: number - - description: Filter models by architecture/model family (e.g. GPT, Claude, Gemini, Llama). - in: query - name: arch + type: + - 'number' + - 'null' + - description: 'Filter models by architecture/model family (e.g. GPT, Claude, Gemini, Llama).' + in: 'query' + name: 'arch' required: false schema: - description: Filter models by architecture/model family (e.g. GPT, Claude, Gemini, Llama). - example: GPT - type: string - - description: Filter models by the organization that created the model. Comma-separated list of author slugs. - in: query - name: model_authors + description: 'Filter models by architecture/model family (e.g. GPT, Claude, Gemini, Llama).' + example: 'GPT' + type: 'string' + - description: 'Filter models by the organization that created the model. Comma-separated list of author slugs.' + in: 'query' + name: 'model_authors' required: false schema: - description: Filter models by the organization that created the model. Comma-separated list of author slugs. - example: openai,anthropic - type: string - - description: Filter models by hosting provider. Comma-separated list of provider names. - in: query - name: providers + description: 'Filter models by the organization that created the model. Comma-separated list of author slugs.' + example: 'openai,anthropic' + type: 'string' + - description: 'Filter models by hosting provider. Comma-separated list of provider names.' + in: 'query' + name: 'providers' required: false schema: - description: Filter models by hosting provider. Comma-separated list of provider names. - example: OpenAI,Anthropic - type: string - - description: Filter by distillation capability. "true" returns only distillable models, "false" excludes them. - in: query - name: distillable + description: 'Filter models by hosting provider. Comma-separated list of provider names.' + example: 'OpenAI,Anthropic' + type: 'string' + - description: 'Filter by distillation capability. "true" returns only distillable models, "false" excludes them.' + in: 'query' + name: 'distillable' required: false schema: - description: Filter by distillation capability. "true" returns only distillable models, "false" excludes them. + description: 'Filter by distillation capability. "true" returns only distillable models, "false" excludes them.' enum: - 'true' - 'false' example: 'true' - type: string + type: 'string' x-speakeasy-unknown-values: allow - - description: When set to "true", return only models with zero data retention endpoints. - in: query - name: zdr + - description: 'When set to "true", return only models with zero data retention endpoints.' + in: 'query' + name: 'zdr' required: false schema: - description: When set to "true", return only models with zero data retention endpoints. + description: 'When set to "true", return only models with zero data retention endpoints.' enum: - 'true' example: 'true' - type: string - - description: Filter to models with endpoints in the given data region. Currently only "eu" is supported. - in: query - name: region + type: 'string' + - description: 'Filter to models with endpoints in the given data region. Currently only "eu" is supported.' + in: 'query' + name: 'region' required: false schema: - description: Filter to models with endpoints in the given data region. Currently only "eu" is supported. + description: 'Filter to models with endpoints in the given data region. Currently only "eu" is supported.' enum: - - eu - example: eu - type: string - - description: Minimum completion (output) price in $/M tokens. - in: query - name: min_output_price + - 'eu' + example: 'eu' + type: 'string' + - description: 'Minimum completion (output) price in $/M tokens.' + in: 'query' + name: 'min_output_price' required: false schema: - description: Minimum completion (output) price in $/M tokens. + description: 'Minimum completion (output) price in $/M tokens.' example: 0 minimum: 0 - nullable: true - type: number - - description: Maximum completion (output) price in $/M tokens. - in: query - name: max_output_price + type: + - 'number' + - 'null' + - description: 'Maximum completion (output) price in $/M tokens.' + in: 'query' + name: 'max_output_price' required: false schema: - description: Maximum completion (output) price in $/M tokens. + description: 'Maximum completion (output) price in $/M tokens.' example: 10 minimum: 0 - nullable: true - type: number - - description: Minimum model age in days since its creation date. - in: query - name: min_age_days + type: + - 'number' + - 'null' + - description: 'Minimum model age in days since its creation date.' + in: 'query' + name: 'min_age_days' required: false schema: - description: Minimum model age in days since its creation date. + description: 'Minimum model age in days since its creation date.' example: 0 minimum: 0 - nullable: true - type: integer - - description: Maximum model age in days since its creation date. - in: query - name: max_age_days + type: + - 'integer' + - 'null' + - description: 'Maximum model age in days since its creation date.' + in: 'query' + name: 'max_age_days' required: false schema: - description: Maximum model age in days since its creation date. + description: 'Maximum model age in days since its creation date.' example: 90 minimum: 0 - nullable: true - type: integer - - description: Minimum Artificial Analysis intelligence index. - in: query - name: min_intelligence_index + type: + - 'integer' + - 'null' + - description: 'Minimum Artificial Analysis intelligence index.' + in: 'query' + name: 'min_intelligence_index' required: false schema: - description: Minimum Artificial Analysis intelligence index. + description: 'Minimum Artificial Analysis intelligence index.' example: 50 minimum: 0 - nullable: true - type: number - - description: Maximum Artificial Analysis intelligence index. - in: query - name: max_intelligence_index + type: + - 'number' + - 'null' + - description: 'Maximum Artificial Analysis intelligence index.' + in: 'query' + name: 'max_intelligence_index' required: false schema: - description: Maximum Artificial Analysis intelligence index. + description: 'Maximum Artificial Analysis intelligence index.' example: 100 minimum: 0 - nullable: true - type: number - - description: Minimum Artificial Analysis coding index. - in: query - name: min_coding_index + type: + - 'number' + - 'null' + - description: 'Minimum Artificial Analysis coding index.' + in: 'query' + name: 'min_coding_index' required: false schema: - description: Minimum Artificial Analysis coding index. + description: 'Minimum Artificial Analysis coding index.' example: 50 minimum: 0 - nullable: true - type: number - - description: Maximum Artificial Analysis coding index. - in: query - name: max_coding_index + type: + - 'number' + - 'null' + - description: 'Maximum Artificial Analysis coding index.' + in: 'query' + name: 'max_coding_index' required: false schema: - description: Maximum Artificial Analysis coding index. + description: 'Maximum Artificial Analysis coding index.' example: 100 minimum: 0 - nullable: true - type: number - - description: Minimum Artificial Analysis agentic index. - in: query - name: min_agentic_index + type: + - 'number' + - 'null' + - description: 'Minimum Artificial Analysis agentic index.' + in: 'query' + name: 'min_agentic_index' required: false schema: - description: Minimum Artificial Analysis agentic index. + description: 'Minimum Artificial Analysis agentic index.' example: 50 minimum: 0 - nullable: true - type: number - - description: Maximum Artificial Analysis agentic index. - in: query - name: max_agentic_index + type: + - 'number' + - 'null' + - description: 'Maximum Artificial Analysis agentic index.' + in: 'query' + name: 'max_agentic_index' required: false schema: - description: Maximum Artificial Analysis agentic index. + description: 'Maximum Artificial Analysis agentic index.' example: 100 minimum: 0 - nullable: true - type: number - - description: >- - Minimum tool-calling success rate, as a fraction in [0, 1] (e.g. 0.9 = 90% of requests finishing with a tool_calls finish reason). - in: query - name: min_tool_success_rate + type: + - 'number' + - 'null' + - description: 'Minimum tool-calling success rate, as a fraction in [0, 1] (e.g. 0.9 = 90% of requests finishing with a tool_calls finish reason).' + in: 'query' + name: 'min_tool_success_rate' required: false schema: - description: >- - Minimum tool-calling success rate, as a fraction in [0, 1] (e.g. 0.9 = 90% of requests finishing with a tool_calls finish reason). + description: 'Minimum tool-calling success rate, as a fraction in [0, 1] (e.g. 0.9 = 90% of requests finishing with a tool_calls finish reason).' example: 0.9 maximum: 1 minimum: 0 - nullable: true - type: number - - description: Maximum tool-calling success rate, as a fraction in [0, 1]. - in: query - name: max_tool_success_rate + type: + - 'number' + - 'null' + - description: 'Maximum tool-calling success rate, as a fraction in [0, 1].' + in: 'query' + name: 'max_tool_success_rate' required: false schema: - description: Maximum tool-calling success rate, as a fraction in [0, 1]. + description: 'Maximum tool-calling success rate, as a fraction in [0, 1].' example: 1 maximum: 1 minimum: 0 - nullable: true - type: number + type: + - 'number' + - 'null' responses: '200': content: @@ -31665,23 +31729,23 @@ paths: data: - architecture: input_modalities: - - text - instruct_type: chatml - modality: text->text + - 'text' + instruct_type: 'chatml' + modality: 'text->text' output_modalities: - - text - tokenizer: GPT - canonical_slug: openai/gpt-4 + - 'text' + tokenizer: 'GPT' + canonical_slug: 'openai/gpt-4' context_length: 8192 created: 1692901234 default_parameters: null - description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy. + description: 'GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.' expiration_date: null - id: openai/gpt-4 + id: 'openai/gpt-4' knowledge_cutoff: null links: - details: /api/v1/models/openai/gpt-4/endpoints - name: GPT-4 + details: '/api/v1/models/openai/gpt-4/endpoints' + name: 'GPT-4' per_request_limits: null pricing: completion: '0.00006' @@ -31689,9 +31753,9 @@ paths: prompt: '0.00003' request: '0' supported_parameters: - - temperature - - top_p - - max_tokens + - 'temperature' + - 'top_p' + - 'max_tokens' supported_voices: null top_provider: context_length: 8192 @@ -31699,66 +31763,66 @@ paths: max_completion_tokens: 4096 schema: $ref: '#/components/schemas/ModelsListResponse' - description: Returns a list of models or RSS feed + description: 'Returns a list of models or RSS feed' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List all models and their properties + description: 'Internal Server Error - Unexpected server error' + summary: 'List all models and their properties' tags: - - Models - x-speakeasy-name-override: list + - 'Models' + x-speakeasy-name-override: 'list' x-speakeasy-pagination: inputs: - - in: parameters - name: offset - type: offset - - in: parameters - name: limit - type: limit + - in: 'parameters' + name: 'offset' + type: 'offset' + - in: 'parameters' + name: 'limit' + type: 'limit' outputs: - results: $.data - type: offsetLimit + results: '$.data' + type: 'offsetLimit' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /models/{author}/{slug}/endpoints: get: - operationId: listEndpoints + operationId: 'listEndpoints' parameters: - - description: The author/organization of the model - in: path - name: author + - description: 'The author/organization of the model' + in: 'path' + name: 'author' required: true schema: - description: The author/organization of the model - example: openai - type: string - - description: The model slug - in: path - name: slug + description: 'The author/organization of the model' + example: 'openai' + type: 'string' + - description: 'The model slug' + in: 'path' + name: 'slug' required: true schema: - description: The model slug - example: gpt-4 - type: string + description: 'The model slug' + example: 'gpt-4' + type: 'string' responses: '200': content: @@ -31767,30 +31831,30 @@ paths: data: architecture: input_modalities: - - text - instruct_type: chatml - modality: text->text + - 'text' + instruct_type: 'chatml' + modality: 'text->text' output_modalities: - - text - tokenizer: GPT + - 'text' + tokenizer: 'GPT' created: 1692901234 - description: GPT-4 is a large multimodal model. + description: 'GPT-4 is a large multimodal model.' endpoints: [] - id: openai/gpt-4 - name: GPT-4 + id: 'openai/gpt-4' + name: 'GPT-4' schema: example: data: architecture: input_modalities: - - text - instruct_type: chatml - modality: text->text + - 'text' + instruct_type: 'chatml' + modality: 'text->text' output_modalities: - - text - tokenizer: GPT + - 'text' + tokenizer: 'GPT' created: 1692901234 - description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy. + description: 'GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.' endpoints: - context_length: 8192 latency_last_30m: @@ -31800,23 +31864,23 @@ paths: p99: 0.85 max_completion_tokens: 4096 max_prompt_tokens: 8192 - model_id: openai/gpt-4 - model_name: GPT-4 + model_id: 'openai/gpt-4' + model_name: 'GPT-4' name: 'OpenAI: GPT-4' pricing: completion: '0.00006' image: '0' prompt: '0.00003' request: '0' - provider_name: OpenAI - quantization: fp16 - status: default + provider_name: 'OpenAI' + quantization: 'fp16' + status: 0 supported_parameters: - - temperature - - top_p - - max_tokens + - 'temperature' + - 'top_p' + - 'max_tokens' supports_implicit_caching: true - tag: openai + tag: 'openai' throughput_last_30m: p50: 45.2 p75: 38.5 @@ -31825,57 +31889,55 @@ paths: uptime_last_1d: 99.8 uptime_last_30m: 99.5 uptime_last_5m: 100 - id: openai/gpt-4 - name: GPT-4 + id: 'openai/gpt-4' + name: 'GPT-4' properties: data: $ref: '#/components/schemas/ListEndpointsResponse' required: - - data - type: object - description: Returns a list of endpoints + - 'data' + type: 'object' + description: 'Returns a list of endpoints' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List all endpoints for a model + description: 'Internal Server Error - Unexpected server error' + summary: 'List all endpoints for a model' tags: - - Endpoints - x-speakeasy-name-override: list + - 'Endpoints' + x-speakeasy-name-override: 'list' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /models/count: get: - operationId: listModelsCount + operationId: 'listModelsCount' parameters: - - description: >- - Filter models by output modality. Accepts a comma-separated list of modalities (text, image, audio, embeddings) or "all" to include all models. Defaults to "text". - in: query - name: output_modalities + - description: 'Filter models by output modality. Accepts a comma-separated list of modalities (text, image, audio, embeddings) or "all" to include all models. Defaults to "text".' + in: 'query' + name: 'output_modalities' required: false schema: - description: >- - Filter models by output modality. Accepts a comma-separated list of modalities (text, image, audio, embeddings) or "all" to include all models. Defaults to "text". - example: text - type: string + description: 'Filter models by output modality. Accepts a comma-separated list of modalities (text, image, audio, embeddings) or "all" to include all models. Defaults to "text".' + example: 'text' + type: 'string' responses: '200': content: @@ -31885,66 +31947,64 @@ paths: count: 150 schema: $ref: '#/components/schemas/ModelsCountResponse' - description: Returns the total count of available models + description: 'Returns the total count of available models' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Get total count of available models + description: 'Internal Server Error - Unexpected server error' + summary: 'Get total count of available models' tags: - - Models - x-speakeasy-name-override: count + - 'Models' + x-speakeasy-name-override: 'count' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /models/user: get: - description: >- - List models filtered by user provider preferences, [privacy settings](https://openrouter.ai/docs/guides/privacy/provider-logging), and [guardrails](https://openrouter.ai/docs/guides/features/guardrails). If requesting through `eu.openrouter.ai/api/v1/...` the results will be filtered to models that satisfy [EU in-region routing](https://openrouter.ai/docs/guides/privacy/provider-logging#enterprise-eu-in-region-routing). - operationId: listModelsUser + description: 'List models filtered by user provider preferences, [privacy settings](https://openrouter.ai/docs/guides/privacy/provider-logging), and [guardrails](https://openrouter.ai/docs/guides/features/guardrails). If requesting through `eu.openrouter.ai/api/v1/...` the results will be filtered to models that satisfy [EU in-region routing](https://openrouter.ai/docs/guides/privacy/provider-logging#enterprise-eu-in-region-routing).' + operationId: 'listModelsUser' parameters: - - description: Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned - in: query - name: offset + - description: 'Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned' + in: 'query' + name: 'offset' required: false schema: default: 0 - description: >- - Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned + description: 'Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned' example: 0 minimum: 0 + type: + - 'integer' + - 'null' nullable: false - type: integer - - description: >- - Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned - in: query - name: limit + - description: 'Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned' + in: 'query' + name: 'limit' required: false schema: default: 500 - description: >- - Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned + description: 'Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned' example: 500 maximum: 1000 minimum: 1 - type: integer + type: 'integer' responses: '200': content: @@ -31953,23 +32013,23 @@ paths: data: - architecture: input_modalities: - - text - instruct_type: chatml - modality: text->text + - 'text' + instruct_type: 'chatml' + modality: 'text->text' output_modalities: - - text - tokenizer: GPT - canonical_slug: openai/gpt-4 + - 'text' + tokenizer: 'GPT' + canonical_slug: 'openai/gpt-4' context_length: 8192 created: 1692901234 default_parameters: null - description: GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy. + description: 'GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.' expiration_date: null - id: openai/gpt-4 + id: 'openai/gpt-4' knowledge_cutoff: null links: - details: /api/v1/models/openai/gpt-4/endpoints - name: GPT-4 + details: '/api/v1/models/openai/gpt-4/endpoints' + name: 'GPT-4' per_request_limits: null pricing: completion: '0.00006' @@ -31977,9 +32037,9 @@ paths: prompt: '0.00003' request: '0' supported_parameters: - - temperature - - top_p - - max_tokens + - 'temperature' + - 'top_p' + - 'max_tokens' supported_voices: null top_provider: context_length: 8192 @@ -31987,95 +32047,96 @@ paths: max_completion_tokens: 4096 schema: $ref: '#/components/schemas/ModelsListResponse' - description: Returns a list of models filtered by user provider preferences + description: 'Returns a list of models filtered by user provider preferences' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' security: - bearer: [] - summary: List models filtered by user provider preferences, privacy settings, and guardrails + summary: 'List models filtered by user provider preferences, privacy settings, and guardrails' tags: - - Models - x-speakeasy-name-override: listForUser + - 'Models' + x-speakeasy-name-override: 'listForUser' x-speakeasy-pagination: inputs: - - in: parameters - name: offset - type: offset - - in: parameters - name: limit - type: limit + - in: 'parameters' + name: 'offset' + type: 'offset' + - in: 'parameters' + name: 'limit' + type: 'limit' outputs: - results: $.data - type: offsetLimit + results: '$.data' + type: 'offsetLimit' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /observability/destinations: get: - description: >- - List the observability destinations configured for the authenticated entity's default workspace. Use the `workspace_id` query parameter to scope the result to a different workspace. Only destinations with stable release status are surfaced — destinations of other types are excluded. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: listObservabilityDestinations + description: 'List the observability destinations configured for the authenticated entity''s default workspace. Use the `workspace_id` query parameter to scope the result to a different workspace. Only destinations with stable release status are surfaced — destinations of other types are excluded. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'listObservabilityDestinations' parameters: - - description: Number of records to skip for pagination - in: query - name: offset + - description: 'Number of records to skip for pagination' + in: 'query' + name: 'offset' required: false schema: default: 0 - description: Number of records to skip for pagination + description: 'Number of records to skip for pagination' example: 0 minimum: 0 + type: + - 'integer' + - 'null' nullable: false - type: integer - - description: Maximum number of records to return (max 100) - in: query - name: limit + - description: 'Maximum number of records to return (max 100)' + in: 'query' + name: 'limit' required: false schema: default: 50 - description: Maximum number of records to return (max 100) + description: 'Maximum number of records to return (max 100)' example: 50 maximum: 100 minimum: 1 - type: integer - - description: Optional workspace ID to filter by. Defaults to the authenticated entity's default workspace. - in: query - name: workspace_id + type: 'integer' + - description: 'Optional workspace ID to filter by. Defaults to the authenticated entity''s default workspace.' + in: 'query' + name: 'workspace_id' required: false schema: - description: Optional workspace ID to filter by. Defaults to the authenticated entity's default workspace. - example: 550e8400-e29b-41d4-a716-446655440000 - format: uuid - type: string + description: 'Optional workspace ID to filter by. Defaults to the authenticated entity''s default workspace.' + example: '550e8400-e29b-41d4-a716-446655440000' + format: 'uuid' + type: 'string' responses: '200': content: @@ -32084,72 +32145,71 @@ paths: data: - api_key_hashes: null config: - baseUrl: https://us.cloud.langfuse.com - publicKey: pk-l...EfGh - secretKey: sk-l...AbCd + baseUrl: 'https://us.cloud.langfuse.com' + publicKey: 'pk-l...EfGh' + secretKey: 'sk-l...AbCd' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Langfuse + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Langfuse' privacy_mode: false sampling_rate: 1 - type: langfuse + type: 'langfuse' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' total_count: 1 schema: $ref: '#/components/schemas/ListObservabilityDestinationsResponse' - description: List of observability destinations + description: 'List of observability destinations' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List observability destinations + description: 'Internal Server Error - Unexpected server error' + summary: 'List observability destinations' tags: - - Observability - x-speakeasy-name-override: list + - 'Observability' + x-speakeasy-name-override: 'list' x-speakeasy-pagination: inputs: - - in: parameters - name: offset - type: offset - - in: parameters - name: limit - type: limit + - in: 'parameters' + name: 'offset' + type: 'offset' + - in: 'parameters' + name: 'limit' + type: 'limit' outputs: - results: $.data - type: offsetLimit + results: '$.data' + type: 'offsetLimit' post: - description: >- - Create a new observability destination. A maximum of 5 destinations per type is allowed. Defaults to the authenticated entity's default workspace; use the `workspace_id` body field to scope to a different workspace. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: createObservabilityDestination + description: 'Create a new observability destination. A maximum of 5 destinations per type is allowed. Defaults to the authenticated entity''s default workspace; use the `workspace_id` body field to scope to a different workspace. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'createObservabilityDestination' requestBody: content: application/json: example: config: - baseUrl: https://us.cloud.langfuse.com - publicKey: pk-l...EfGh - secretKey: sk-l...AbCd - name: Production Langfuse - type: langfuse + baseUrl: 'https://us.cloud.langfuse.com' + publicKey: 'pk-l...EfGh' + secretKey: 'sk-l...AbCd' + name: 'Production Langfuse' + type: 'langfuse' schema: $ref: '#/components/schemas/CreateObservabilityDestinationRequest' required: true @@ -32161,95 +32221,94 @@ paths: data: api_key_hashes: null config: - baseUrl: https://us.cloud.langfuse.com - publicKey: pk-l...EfGh - secretKey: sk-l...AbCd + baseUrl: 'https://us.cloud.langfuse.com' + publicKey: 'pk-l...EfGh' + secretKey: 'sk-l...AbCd' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Langfuse + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Langfuse' privacy_mode: false sampling_rate: 1 - type: langfuse + type: 'langfuse' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' schema: $ref: '#/components/schemas/CreateObservabilityDestinationResponse' - description: Destination created successfully + description: 'Destination created successfully' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '409': content: application/json: example: error: code: 409 - message: Resource conflict. Please try again later. + message: 'Resource conflict. Please try again later.' schema: $ref: '#/components/schemas/ConflictResponse' - description: Conflict - Resource conflict or concurrent modification + description: 'Conflict - Resource conflict or concurrent modification' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Create an observability destination + description: 'Internal Server Error - Unexpected server error' + summary: 'Create an observability destination' tags: - - Observability - x-speakeasy-name-override: create + - 'Observability' + x-speakeasy-name-override: 'create' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /observability/destinations/{id}: delete: - description: >- - Delete an existing observability destination. This performs a soft delete. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: deleteObservabilityDestination + description: 'Delete an existing observability destination. This performs a soft delete. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'deleteObservabilityDestination' parameters: - - description: The destination ID (UUID). - in: path - name: id + - description: 'The destination ID (UUID).' + in: 'path' + name: 'id' required: true schema: - description: The destination ID (UUID). - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'The destination ID (UUID).' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' responses: '200': content: @@ -32258,55 +32317,54 @@ paths: deleted: true schema: $ref: '#/components/schemas/DeleteObservabilityDestinationResponse' - description: Destination deleted successfully + description: 'Destination deleted successfully' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Delete an observability destination + description: 'Internal Server Error - Unexpected server error' + summary: 'Delete an observability destination' tags: - - Observability - x-speakeasy-name-override: delete + - 'Observability' + x-speakeasy-name-override: 'delete' get: - description: >- - Fetch a single observability destination by its UUID. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: getObservabilityDestination + description: 'Fetch a single observability destination by its UUID. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'getObservabilityDestination' parameters: - - description: The destination ID (UUID). - in: path - name: id + - description: 'The destination ID (UUID).' + in: 'path' + name: 'id' required: true schema: - description: The destination ID (UUID). - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'The destination ID (UUID).' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' responses: '200': content: @@ -32315,76 +32373,75 @@ paths: data: api_key_hashes: null config: - baseUrl: https://us.cloud.langfuse.com - publicKey: pk-l...EfGh - secretKey: sk-l...AbCd + baseUrl: 'https://us.cloud.langfuse.com' + publicKey: 'pk-l...EfGh' + secretKey: 'sk-l...AbCd' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Langfuse + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Langfuse' privacy_mode: false sampling_rate: 1 - type: langfuse + type: 'langfuse' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' schema: $ref: '#/components/schemas/GetObservabilityDestinationResponse' - description: The observability destination + description: 'The observability destination' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Get an observability destination + description: 'Internal Server Error - Unexpected server error' + summary: 'Get an observability destination' tags: - - Observability - x-speakeasy-name-override: get + - 'Observability' + x-speakeasy-name-override: 'get' patch: - description: >- - Update an existing observability destination. Only the fields provided in the request body are updated. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: updateObservabilityDestination + description: 'Update an existing observability destination. Only the fields provided in the request body are updated. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'updateObservabilityDestination' parameters: - - description: The destination ID (UUID). - in: path - name: id + - description: 'The destination ID (UUID).' + in: 'path' + name: 'id' required: true schema: - description: The destination ID (UUID). - example: 99999999-aaaa-bbbb-cccc-dddddddddddd - format: uuid - type: string + description: 'The destination ID (UUID).' + example: '99999999-aaaa-bbbb-cccc-dddddddddddd' + format: 'uuid' + type: 'string' requestBody: content: application/json: example: enabled: false - name: Updated Langfuse + name: 'Updated Langfuse' schema: $ref: '#/components/schemas/UpdateObservabilityDestinationRequest' required: true @@ -32396,245 +32453,250 @@ paths: data: api_key_hashes: null config: - baseUrl: https://us.cloud.langfuse.com - publicKey: pk-l...EfGh - secretKey: sk-l...AbCd + baseUrl: 'https://us.cloud.langfuse.com' + publicKey: 'pk-l...EfGh' + secretKey: 'sk-l...AbCd' created_at: '2025-08-24T10:30:00Z' enabled: true filter_rules: null - id: 99999999-aaaa-bbbb-cccc-dddddddddddd - name: Production Langfuse + id: '99999999-aaaa-bbbb-cccc-dddddddddddd' + name: 'Production Langfuse' privacy_mode: false sampling_rate: 1 - type: langfuse + type: 'langfuse' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' schema: $ref: '#/components/schemas/UpdateObservabilityDestinationResponse' - description: Destination updated successfully + description: 'Destination updated successfully' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '409': content: application/json: example: error: code: 409 - message: Resource conflict. Please try again later. + message: 'Resource conflict. Please try again later.' schema: $ref: '#/components/schemas/ConflictResponse' - description: Conflict - Resource conflict or concurrent modification + description: 'Conflict - Resource conflict or concurrent modification' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Update an observability destination + description: 'Internal Server Error - Unexpected server error' + summary: 'Update an observability destination' tags: - - Observability - x-speakeasy-name-override: update + - 'Observability' + x-speakeasy-name-override: 'update' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /organization/members: get: - description: >- - List all members of the organization associated with the authenticated management key. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: listOrganizationMembers + description: 'List all members of the organization associated with the authenticated management key. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'listOrganizationMembers' parameters: - - description: Number of records to skip for pagination - in: query - name: offset + - description: 'Number of records to skip for pagination' + in: 'query' + name: 'offset' required: false schema: default: 0 - description: Number of records to skip for pagination + description: 'Number of records to skip for pagination' example: 0 minimum: 0 + type: + - 'integer' + - 'null' nullable: false - type: integer - - description: Maximum number of records to return (max 100) - in: query - name: limit + - description: 'Maximum number of records to return (max 100)' + in: 'query' + name: 'limit' required: false schema: default: 50 - description: Maximum number of records to return (max 100) + description: 'Maximum number of records to return (max 100)' example: 50 maximum: 100 minimum: 1 - type: integer + type: 'integer' responses: '200': content: application/json: example: data: - - email: jane.doe@example.com - first_name: Jane - id: user_2dHFtVWx2n56w6HkM0000000000 - last_name: Doe - role: member + - email: 'jane.doe@example.com' + first_name: 'Jane' + id: 'user_2dHFtVWx2n56w6HkM0000000000' + last_name: 'Doe' + role: 'org:member' total_count: 25 schema: properties: data: - description: List of organization members + description: 'List of organization members' items: properties: email: - description: Email address of the member - example: jane.doe@example.com - type: string + description: 'Email address of the member' + example: 'jane.doe@example.com' + type: 'string' first_name: - description: First name of the member - example: Jane - nullable: true - type: string + description: 'First name of the member' + example: 'Jane' + type: + - 'string' + - 'null' id: - description: User ID of the organization member - example: user_2dHFtVWx2n56w6HkM0000000000 - type: string + description: 'User ID of the organization member' + example: 'user_2dHFtVWx2n56w6HkM0000000000' + type: 'string' last_name: - description: Last name of the member - example: Doe - nullable: true - type: string + description: 'Last name of the member' + example: 'Doe' + type: + - 'string' + - 'null' role: - description: Role of the member in the organization + description: 'Role of the member in the organization' enum: - - org:admin - - org:member - example: org:member - type: string + - 'org:admin' + - 'org:member' + example: 'org:member' + type: 'string' x-speakeasy-unknown-values: allow required: - - id - - first_name - - last_name - - email - - role - type: object - type: array + - 'id' + - 'first_name' + - 'last_name' + - 'email' + - 'role' + type: 'object' + type: 'array' total_count: - description: Total number of members in the organization + description: 'Total number of members in the organization' example: 25 - type: integer + type: 'integer' required: - - data - - total_count - type: object - description: List of organization members + - 'data' + - 'total_count' + type: 'object' + description: 'List of organization members' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List organization members + description: 'Internal Server Error - Unexpected server error' + summary: 'List organization members' tags: - - Organization - x-speakeasy-name-override: listMembers + - 'Organization' + x-speakeasy-name-override: 'listMembers' x-speakeasy-pagination: inputs: - - in: parameters - name: offset - type: offset - - in: parameters - name: limit - type: limit + - in: 'parameters' + name: 'offset' + type: 'offset' + - in: 'parameters' + name: 'limit' + type: 'limit' outputs: - results: $.data - type: offsetLimit + results: '$.data' + type: 'offsetLimit' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /presets: get: - description: Lists all presets for the authenticated user, ordered by most recently updated first. - operationId: listPresets + description: 'Lists all presets for the authenticated user, ordered by most recently updated first.' + operationId: 'listPresets' parameters: - - description: Number of records to skip for pagination - in: query - name: offset + - description: 'Number of records to skip for pagination' + in: 'query' + name: 'offset' required: false schema: default: 0 - description: Number of records to skip for pagination + description: 'Number of records to skip for pagination' example: 0 minimum: 0 + type: + - 'integer' + - 'null' nullable: false - type: integer - - description: Maximum number of records to return (max 100) - in: query - name: limit + - description: 'Maximum number of records to return (max 100)' + in: 'query' + name: 'limit' required: false schema: default: 50 - description: Maximum number of records to return (max 100) + description: 'Maximum number of records to return (max 100)' example: 50 maximum: 100 minimum: 1 - type: integer + type: 'integer' responses: '200': content: @@ -32642,85 +32704,85 @@ paths: example: data: - created_at: '2026-04-20T10:00:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' description: null - designated_version_id: 550e8400-e29b-41d4-a716-446655440000 - id: 650e8400-e29b-41d4-a716-446655440001 - name: my-preset - slug: my-preset - status: active + designated_version_id: '550e8400-e29b-41d4-a716-446655440000' + id: '650e8400-e29b-41d4-a716-446655440001' + name: 'my-preset' + slug: 'my-preset' + status: 'active' status_updated_at: null updated_at: '2026-04-20T10:00:00Z' - workspace_id: 750e8400-e29b-41d4-a716-446655440002 + workspace_id: '750e8400-e29b-41d4-a716-446655440002' total_count: 1 schema: $ref: '#/components/schemas/ListPresetsResponse' - description: Paginated list of presets. + description: 'Paginated list of presets.' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' security: - apiKey: [] - summary: List presets + summary: 'List presets' tags: - - Presets - x-speakeasy-name-override: list + - 'Presets' + x-speakeasy-name-override: 'list' x-speakeasy-pagination: inputs: - - in: parameters - name: offset - type: offset - - in: parameters - name: limit - type: limit + - in: 'parameters' + name: 'offset' + type: 'offset' + - in: 'parameters' + name: 'limit' + type: 'limit' outputs: - results: $.data - type: offsetLimit + results: '$.data' + type: 'offsetLimit' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /presets/{slug}: get: - description: Retrieves a preset by its slug with its currently designated version inline. - operationId: getPreset + description: 'Retrieves a preset by its slug with its currently designated version inline.' + operationId: 'getPreset' parameters: - - description: URL-safe slug identifying the preset. - in: path - name: slug + - description: 'URL-safe slug identifying the preset.' + in: 'path' + name: 'slug' required: true schema: - description: URL-safe slug identifying the preset. - example: my-preset + description: 'URL-safe slug identifying the preset.' + example: 'my-preset' minLength: 1 - type: string + type: 'string' responses: '200': content: @@ -32728,105 +32790,104 @@ paths: example: data: created_at: '2026-04-20T10:00:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' description: null designated_version: config: - model: openai/gpt-4o + model: 'openai/gpt-4o' temperature: 0.7 created_at: '2026-04-20T10:00:00Z' - creator_id: user_2dHFtVWx2n56w6HkM0000000000 - id: 550e8400-e29b-41d4-a716-446655440000 - preset_id: 650e8400-e29b-41d4-a716-446655440001 - system_prompt: You are a helpful assistant. + creator_id: 'user_2dHFtVWx2n56w6HkM0000000000' + id: '550e8400-e29b-41d4-a716-446655440000' + preset_id: '650e8400-e29b-41d4-a716-446655440001' + system_prompt: 'You are a helpful assistant.' updated_at: '2026-04-20T10:00:00Z' version: 1 - designated_version_id: 550e8400-e29b-41d4-a716-446655440000 - id: 650e8400-e29b-41d4-a716-446655440001 - name: my-preset - slug: my-preset - status: active + designated_version_id: '550e8400-e29b-41d4-a716-446655440000' + id: '650e8400-e29b-41d4-a716-446655440001' + name: 'my-preset' + slug: 'my-preset' + status: 'active' status_updated_at: null updated_at: '2026-04-20T10:00:00Z' - workspace_id: 750e8400-e29b-41d4-a716-446655440002 + workspace_id: '750e8400-e29b-41d4-a716-446655440002' schema: $ref: '#/components/schemas/GetPresetResponse' - description: Preset with its designated version. + description: 'Preset with its designated version.' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' security: - apiKey: [] - summary: Get a preset + summary: 'Get a preset' tags: - - Presets - x-speakeasy-name-override: get + - 'Presets' + x-speakeasy-name-override: 'get' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /presets/{slug}/chat/completions: post: - description: >- - Creates a preset (or a new version of an existing one) from an inference request body. Only fields that overlap with the preset config are persisted; other fields (e.g. `messages`, `stream`, `prompt`) are silently ignored. - operationId: createPresetsChatCompletions + description: 'Creates a preset (or a new version of an existing one) from an inference request body. Only fields that overlap with the preset config are persisted; other fields (e.g. `messages`, `stream`, `prompt`) are silently ignored.' + operationId: 'createPresetsChatCompletions' parameters: - - description: URL-safe slug identifying the preset. Created if it does not exist. - in: path - name: slug + - description: 'URL-safe slug identifying the preset. Created if it does not exist.' + in: 'path' + name: 'slug' required: true schema: - description: URL-safe slug identifying the preset. Created if it does not exist. - example: my-preset + description: 'URL-safe slug identifying the preset. Created if it does not exist.' + example: 'my-preset' minLength: 1 - type: string + type: 'string' requestBody: content: application/json: example: messages: - - content: You are a helpful assistant. - role: system - - content: Hello! - role: user - model: openai/gpt-5.4 + - content: 'You are a helpful assistant.' + role: 'system' + - content: 'Hello!' + role: 'user' + model: 'openai/gpt-5.4' temperature: 0.7 schema: $ref: '#/components/schemas/ChatRequest' @@ -32838,124 +32899,123 @@ paths: example: data: created_at: '2026-04-20T10:00:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' description: null designated_version: config: - model: openai/gpt-5.4 + model: 'openai/gpt-5.4' temperature: 0.7 created_at: '2026-04-20T10:00:00Z' - creator_id: user_2dHFtVWx2n56w6HkM0000000000 - id: 550e8400-e29b-41d4-a716-446655440000 - preset_id: 650e8400-e29b-41d4-a716-446655440001 - system_prompt: You are a helpful assistant. + creator_id: 'user_2dHFtVWx2n56w6HkM0000000000' + id: '550e8400-e29b-41d4-a716-446655440000' + preset_id: '650e8400-e29b-41d4-a716-446655440001' + system_prompt: 'You are a helpful assistant.' updated_at: '2026-04-20T10:00:00Z' version: 1 - designated_version_id: 550e8400-e29b-41d4-a716-446655440000 - id: 650e8400-e29b-41d4-a716-446655440001 - name: my-preset - slug: my-preset - status: active + designated_version_id: '550e8400-e29b-41d4-a716-446655440000' + id: '650e8400-e29b-41d4-a716-446655440001' + name: 'my-preset' + slug: 'my-preset' + status: 'active' status_updated_at: null updated_at: '2026-04-20T10:00:00Z' - workspace_id: 750e8400-e29b-41d4-a716-446655440002 + workspace_id: '750e8400-e29b-41d4-a716-446655440002' schema: $ref: '#/components/schemas/CreatePresetFromInferenceResponse' - description: Preset created or updated successfully. + description: 'Preset created or updated successfully.' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '409': content: application/json: example: error: code: 409 - message: Resource conflict. Please try again later. + message: 'Resource conflict. Please try again later.' schema: $ref: '#/components/schemas/ConflictResponse' - description: Conflict - Resource conflict or concurrent modification + description: 'Conflict - Resource conflict or concurrent modification' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' security: - apiKey: [] - summary: Create a preset from a chat-completions request body + summary: 'Create a preset from a chat-completions request body' tags: - - Presets + - 'Presets' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /presets/{slug}/messages: post: - description: >- - Creates a preset (or a new version of an existing one) from an inference request body. Only fields that overlap with the preset config are persisted; other fields (e.g. `messages`, `stream`, `prompt`) are silently ignored. - operationId: createPresetsMessages + description: 'Creates a preset (or a new version of an existing one) from an inference request body. Only fields that overlap with the preset config are persisted; other fields (e.g. `messages`, `stream`, `prompt`) are silently ignored.' + operationId: 'createPresetsMessages' parameters: - - description: URL-safe slug identifying the preset. Created if it does not exist. - in: path - name: slug + - description: 'URL-safe slug identifying the preset. Created if it does not exist.' + in: 'path' + name: 'slug' required: true schema: - description: URL-safe slug identifying the preset. Created if it does not exist. - example: my-preset + description: 'URL-safe slug identifying the preset. Created if it does not exist.' + example: 'my-preset' minLength: 1 - type: string + type: 'string' requestBody: content: application/json: example: max_tokens: 1024 messages: - - content: Hello! - role: user - model: anthropic/claude-4.6-sonnet - system: You are a helpful assistant. + - content: 'Hello!' + role: 'user' + model: 'anthropic/claude-4.6-sonnet' + system: 'You are a helpful assistant.' schema: $ref: '#/components/schemas/MessagesRequest' required: true @@ -32966,121 +33026,120 @@ paths: example: data: created_at: '2026-04-20T10:00:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' description: null designated_version: config: max_tokens: 1024 - model: anthropic/claude-4.6-sonnet + model: 'anthropic/claude-4.6-sonnet' created_at: '2026-04-20T10:00:00Z' - creator_id: user_2dHFtVWx2n56w6HkM0000000000 - id: 550e8400-e29b-41d4-a716-446655440000 - preset_id: 650e8400-e29b-41d4-a716-446655440001 - system_prompt: You are a helpful assistant. + creator_id: 'user_2dHFtVWx2n56w6HkM0000000000' + id: '550e8400-e29b-41d4-a716-446655440000' + preset_id: '650e8400-e29b-41d4-a716-446655440001' + system_prompt: 'You are a helpful assistant.' updated_at: '2026-04-20T10:00:00Z' version: 1 - designated_version_id: 550e8400-e29b-41d4-a716-446655440000 - id: 650e8400-e29b-41d4-a716-446655440001 - name: my-preset - slug: my-preset - status: active + designated_version_id: '550e8400-e29b-41d4-a716-446655440000' + id: '650e8400-e29b-41d4-a716-446655440001' + name: 'my-preset' + slug: 'my-preset' + status: 'active' status_updated_at: null updated_at: '2026-04-20T10:00:00Z' - workspace_id: 750e8400-e29b-41d4-a716-446655440002 + workspace_id: '750e8400-e29b-41d4-a716-446655440002' schema: $ref: '#/components/schemas/CreatePresetFromInferenceResponse' - description: Preset created or updated successfully. + description: 'Preset created or updated successfully.' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '409': content: application/json: example: error: code: 409 - message: Resource conflict. Please try again later. + message: 'Resource conflict. Please try again later.' schema: $ref: '#/components/schemas/ConflictResponse' - description: Conflict - Resource conflict or concurrent modification + description: 'Conflict - Resource conflict or concurrent modification' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' security: - apiKey: [] - summary: Create a preset from a messages request body + summary: 'Create a preset from a messages request body' tags: - - Presets + - 'Presets' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /presets/{slug}/responses: post: - description: >- - Creates a preset (or a new version of an existing one) from an inference request body. Only fields that overlap with the preset config are persisted; other fields (e.g. `messages`, `stream`, `prompt`) are silently ignored. - operationId: createPresetsResponses + description: 'Creates a preset (or a new version of an existing one) from an inference request body. Only fields that overlap with the preset config are persisted; other fields (e.g. `messages`, `stream`, `prompt`) are silently ignored.' + operationId: 'createPresetsResponses' parameters: - - description: URL-safe slug identifying the preset. Created if it does not exist. - in: path - name: slug + - description: 'URL-safe slug identifying the preset. Created if it does not exist.' + in: 'path' + name: 'slug' required: true schema: - description: URL-safe slug identifying the preset. Created if it does not exist. - example: my-preset + description: 'URL-safe slug identifying the preset. Created if it does not exist.' + example: 'my-preset' minLength: 1 - type: string + type: 'string' requestBody: content: application/json: example: - input: Hello! - instructions: You are a helpful assistant. - model: openai/gpt-5.4 + input: 'Hello!' + instructions: 'You are a helpful assistant.' + model: 'openai/gpt-5.4' schema: $ref: '#/components/schemas/ResponsesRequest' required: true @@ -33091,134 +33150,136 @@ paths: example: data: created_at: '2026-04-20T10:00:00Z' - creator_user_id: user_2dHFtVWx2n56w6HkM0000000000 + creator_user_id: 'user_2dHFtVWx2n56w6HkM0000000000' description: null designated_version: config: - model: openai/gpt-5.4 + model: 'openai/gpt-5.4' created_at: '2026-04-20T10:00:00Z' - creator_id: user_2dHFtVWx2n56w6HkM0000000000 - id: 550e8400-e29b-41d4-a716-446655440000 - preset_id: 650e8400-e29b-41d4-a716-446655440001 - system_prompt: You are a helpful assistant. + creator_id: 'user_2dHFtVWx2n56w6HkM0000000000' + id: '550e8400-e29b-41d4-a716-446655440000' + preset_id: '650e8400-e29b-41d4-a716-446655440001' + system_prompt: 'You are a helpful assistant.' updated_at: '2026-04-20T10:00:00Z' version: 1 - designated_version_id: 550e8400-e29b-41d4-a716-446655440000 - id: 650e8400-e29b-41d4-a716-446655440001 - name: my-preset - slug: my-preset - status: active + designated_version_id: '550e8400-e29b-41d4-a716-446655440000' + id: '650e8400-e29b-41d4-a716-446655440001' + name: 'my-preset' + slug: 'my-preset' + status: 'active' status_updated_at: null updated_at: '2026-04-20T10:00:00Z' - workspace_id: 750e8400-e29b-41d4-a716-446655440002 + workspace_id: '750e8400-e29b-41d4-a716-446655440002' schema: $ref: '#/components/schemas/CreatePresetFromInferenceResponse' - description: Preset created or updated successfully. + description: 'Preset created or updated successfully.' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '409': content: application/json: example: error: code: 409 - message: Resource conflict. Please try again later. + message: 'Resource conflict. Please try again later.' schema: $ref: '#/components/schemas/ConflictResponse' - description: Conflict - Resource conflict or concurrent modification + description: 'Conflict - Resource conflict or concurrent modification' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' security: - apiKey: [] - summary: Create a preset from a responses request body + summary: 'Create a preset from a responses request body' tags: - - Presets + - 'Presets' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /presets/{slug}/versions: get: - description: Lists all versions of a preset, ordered by version number ascending (oldest first). - operationId: listPresetVersions + description: 'Lists all versions of a preset, ordered by version number ascending (oldest first).' + operationId: 'listPresetVersions' parameters: - - description: URL-safe slug identifying the preset. - in: path - name: slug + - description: 'URL-safe slug identifying the preset.' + in: 'path' + name: 'slug' required: true schema: - description: URL-safe slug identifying the preset. - example: my-preset + description: 'URL-safe slug identifying the preset.' + example: 'my-preset' minLength: 1 - type: string - - description: Number of records to skip for pagination - in: query - name: offset + type: 'string' + - description: 'Number of records to skip for pagination' + in: 'query' + name: 'offset' required: false schema: default: 0 - description: Number of records to skip for pagination + description: 'Number of records to skip for pagination' example: 0 minimum: 0 + type: + - 'integer' + - 'null' nullable: false - type: integer - - description: Maximum number of records to return (max 100) - in: query - name: limit + - description: 'Maximum number of records to return (max 100)' + in: 'query' + name: 'limit' required: false schema: default: 50 - description: Maximum number of records to return (max 100) + description: 'Maximum number of records to return (max 100)' example: 50 maximum: 100 minimum: 1 - type: integer + type: 'integer' responses: '200': content: @@ -33226,103 +33287,103 @@ paths: example: data: - config: - model: openai/gpt-4o + model: 'openai/gpt-4o' temperature: 0.7 created_at: '2026-04-20T10:00:00Z' - creator_id: user_2dHFtVWx2n56w6HkM0000000000 - id: 550e8400-e29b-41d4-a716-446655440000 - preset_id: 650e8400-e29b-41d4-a716-446655440001 - system_prompt: You are a helpful assistant. + creator_id: 'user_2dHFtVWx2n56w6HkM0000000000' + id: '550e8400-e29b-41d4-a716-446655440000' + preset_id: '650e8400-e29b-41d4-a716-446655440001' + system_prompt: 'You are a helpful assistant.' updated_at: '2026-04-20T10:00:00Z' version: 1 total_count: 1 schema: $ref: '#/components/schemas/ListPresetVersionsResponse' - description: Paginated list of preset versions. + description: 'Paginated list of preset versions.' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' security: - apiKey: [] - summary: List versions of a preset + summary: 'List versions of a preset' tags: - - Presets - x-speakeasy-name-override: listVersions + - 'Presets' + x-speakeasy-name-override: 'listVersions' x-speakeasy-pagination: inputs: - - in: parameters - name: offset - type: offset - - in: parameters - name: limit - type: limit + - in: 'parameters' + name: 'offset' + type: 'offset' + - in: 'parameters' + name: 'limit' + type: 'limit' outputs: - results: $.data - type: offsetLimit + results: '$.data' + type: 'offsetLimit' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /presets/{slug}/versions/{version}: get: - description: Retrieves a specific version of a preset by its slug and version number. - operationId: getPresetVersion + description: 'Retrieves a specific version of a preset by its slug and version number.' + operationId: 'getPresetVersion' parameters: - - description: URL-safe slug identifying the preset. - in: path - name: slug + - description: 'URL-safe slug identifying the preset.' + in: 'path' + name: 'slug' required: true schema: - description: URL-safe slug identifying the preset. - example: my-preset + description: 'URL-safe slug identifying the preset.' + example: 'my-preset' minLength: 1 - type: string - - description: Version number of the preset. - in: path - name: version + type: 'string' + - description: 'Version number of the preset.' + in: 'path' + name: 'version' required: true schema: - description: Version number of the preset. + description: 'Version number of the preset.' example: '1' minLength: 1 - type: string + type: 'string' responses: '200': content: @@ -33330,71 +33391,71 @@ paths: example: data: config: - model: openai/gpt-4o + model: 'openai/gpt-4o' temperature: 0.7 created_at: '2026-04-20T10:00:00Z' - creator_id: user_2dHFtVWx2n56w6HkM0000000000 - id: 550e8400-e29b-41d4-a716-446655440000 - preset_id: 650e8400-e29b-41d4-a716-446655440001 - system_prompt: You are a helpful assistant. + creator_id: 'user_2dHFtVWx2n56w6HkM0000000000' + id: '550e8400-e29b-41d4-a716-446655440000' + preset_id: '650e8400-e29b-41d4-a716-446655440001' + system_prompt: 'You are a helpful assistant.' updated_at: '2026-04-20T10:00:00Z' version: 1 schema: $ref: '#/components/schemas/GetPresetVersionResponse' - description: The requested preset version. + description: 'The requested preset version.' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' security: - apiKey: [] - summary: Get a specific version of a preset + summary: 'Get a specific version of a preset' tags: - - Presets - x-speakeasy-name-override: getVersion + - 'Presets' + x-speakeasy-name-override: 'getVersion' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /providers: get: - operationId: listProviders + operationId: 'listProviders' responses: '200': content: @@ -33402,686 +33463,687 @@ paths: example: data: - datacenters: - - US - - IE - headquarters: US - name: OpenAI - privacy_policy_url: https://openai.com/privacy - slug: openai - status_page_url: https://status.openai.com - terms_of_service_url: https://openai.com/terms + - 'US' + - 'IE' + headquarters: 'US' + name: 'OpenAI' + privacy_policy_url: 'https://openai.com/privacy' + slug: 'openai' + status_page_url: 'https://status.openai.com' + terms_of_service_url: 'https://openai.com/terms' schema: example: data: - datacenters: - - US - - IE - headquarters: US - name: OpenAI - privacy_policy_url: https://openai.com/privacy - slug: openai - status_page_url: https://status.openai.com - terms_of_service_url: https://openai.com/terms + - 'US' + - 'IE' + headquarters: 'US' + name: 'OpenAI' + privacy_policy_url: 'https://openai.com/privacy' + slug: 'openai' + status_page_url: 'https://status.openai.com' + terms_of_service_url: 'https://openai.com/terms' properties: data: items: example: datacenters: - - US - - IE - headquarters: US - name: OpenAI - privacy_policy_url: https://openai.com/privacy - slug: openai - status_page_url: https://status.openai.com - terms_of_service_url: https://openai.com/terms + - 'US' + - 'IE' + headquarters: 'US' + name: 'OpenAI' + privacy_policy_url: 'https://openai.com/privacy' + slug: 'openai' + status_page_url: 'https://status.openai.com' + terms_of_service_url: 'https://openai.com/terms' properties: datacenters: - description: ISO 3166-1 Alpha-2 country codes of the provider datacenter locations + description: 'ISO 3166-1 Alpha-2 country codes of the provider datacenter locations' example: - - US - - IE + - 'US' + - 'IE' items: enum: - - AD - - AE - - AF - - AG - - AI - - AL - - AM - - AO - - AQ - - AR - - AS - - AT - - AU - - AW - - AX - - AZ - - BA - - BB - - BD - - BE - - BF - - BG - - BH - - BI - - BJ - - BL - - BM - - BN - - BO - - BQ - - BR - - BS - - BT - - BV - - BW - - BY - - BZ - - CA - - CC - - CD - - CF - - CG - - CH - - CI - - CK - - CL - - CM - - CN - - CO - - CR - - CU - - CV - - CW - - CX - - CY - - CZ - - DE - - DJ - - DK - - DM - - DO - - DZ - - EC - - EE - - EG - - EH - - ER - - ES - - ET - - FI - - FJ - - FK - - FM - - FO - - FR - - GA - - GB - - GD - - GE - - GF - - GG - - GH - - GI - - GL - - GM - - GN - - GP - - GQ - - GR - - GS - - GT - - GU - - GW - - GY - - HK - - HM - - HN - - HR - - HT - - HU - - ID - - IE - - IL - - IM - - IN - - IO - - IQ - - IR - - IS - - IT - - JE - - JM - - JO - - JP - - KE - - KG - - KH - - KI - - KM - - KN - - KP - - KR - - KW - - KY - - KZ - - LA - - LB - - LC - - LI - - LK - - LR - - LS - - LT - - LU - - LV - - LY - - MA - - MC - - MD - - ME - - MF - - MG - - MH - - MK - - ML - - MM - - MN - - MO - - MP - - MQ - - MR - - MS - - MT - - MU - - MV - - MW - - MX - - MY - - MZ - - NA - - NC - - NE - - NF - - NG - - NI - - NL + - 'AD' + - 'AE' + - 'AF' + - 'AG' + - 'AI' + - 'AL' + - 'AM' + - 'AO' + - 'AQ' + - 'AR' + - 'AS' + - 'AT' + - 'AU' + - 'AW' + - 'AX' + - 'AZ' + - 'BA' + - 'BB' + - 'BD' + - 'BE' + - 'BF' + - 'BG' + - 'BH' + - 'BI' + - 'BJ' + - 'BL' + - 'BM' + - 'BN' + - 'BO' + - 'BQ' + - 'BR' + - 'BS' + - 'BT' + - 'BV' + - 'BW' + - 'BY' + - 'BZ' + - 'CA' + - 'CC' + - 'CD' + - 'CF' + - 'CG' + - 'CH' + - 'CI' + - 'CK' + - 'CL' + - 'CM' + - 'CN' + - 'CO' + - 'CR' + - 'CU' + - 'CV' + - 'CW' + - 'CX' + - 'CY' + - 'CZ' + - 'DE' + - 'DJ' + - 'DK' + - 'DM' + - 'DO' + - 'DZ' + - 'EC' + - 'EE' + - 'EG' + - 'EH' + - 'ER' + - 'ES' + - 'ET' + - 'FI' + - 'FJ' + - 'FK' + - 'FM' + - 'FO' + - 'FR' + - 'GA' + - 'GB' + - 'GD' + - 'GE' + - 'GF' + - 'GG' + - 'GH' + - 'GI' + - 'GL' + - 'GM' + - 'GN' + - 'GP' + - 'GQ' + - 'GR' + - 'GS' + - 'GT' + - 'GU' + - 'GW' + - 'GY' + - 'HK' + - 'HM' + - 'HN' + - 'HR' + - 'HT' + - 'HU' + - 'ID' + - 'IE' + - 'IL' + - 'IM' + - 'IN' + - 'IO' + - 'IQ' + - 'IR' + - 'IS' + - 'IT' + - 'JE' + - 'JM' + - 'JO' + - 'JP' + - 'KE' + - 'KG' + - 'KH' + - 'KI' + - 'KM' + - 'KN' + - 'KP' + - 'KR' + - 'KW' + - 'KY' + - 'KZ' + - 'LA' + - 'LB' + - 'LC' + - 'LI' + - 'LK' + - 'LR' + - 'LS' + - 'LT' + - 'LU' + - 'LV' + - 'LY' + - 'MA' + - 'MC' + - 'MD' + - 'ME' + - 'MF' + - 'MG' + - 'MH' + - 'MK' + - 'ML' + - 'MM' + - 'MN' + - 'MO' + - 'MP' + - 'MQ' + - 'MR' + - 'MS' + - 'MT' + - 'MU' + - 'MV' + - 'MW' + - 'MX' + - 'MY' + - 'MZ' + - 'NA' + - 'NC' + - 'NE' + - 'NF' + - 'NG' + - 'NI' + - 'NL' - 'NO' - - NP - - NR - - NU - - NZ - - OM - - PA - - PE - - PF - - PG - - PH - - PK - - PL - - PM - - PN - - PR - - PS - - PT - - PW - - PY - - QA - - RE - - RO - - RS - - RU - - RW - - SA - - SB - - SC - - SD - - SE - - SG - - SH - - SI - - SJ - - SK - - SL - - SM - - SN - - SO - - SR - - SS - - ST - - SV - - SX - - SY - - SZ - - TC - - TD - - TF - - TG - - TH - - TJ - - TK - - TL - - TM - - TN - - TO - - TR - - TT - - TV - - TW - - TZ - - UA - - UG - - UM - - US - - UY - - UZ - - VA - - VC - - VE - - VG - - VI - - VN - - VU - - WF - - WS - - YE - - YT - - ZA - - ZM - - ZW - type: string + - 'NP' + - 'NR' + - 'NU' + - 'NZ' + - 'OM' + - 'PA' + - 'PE' + - 'PF' + - 'PG' + - 'PH' + - 'PK' + - 'PL' + - 'PM' + - 'PN' + - 'PR' + - 'PS' + - 'PT' + - 'PW' + - 'PY' + - 'QA' + - 'RE' + - 'RO' + - 'RS' + - 'RU' + - 'RW' + - 'SA' + - 'SB' + - 'SC' + - 'SD' + - 'SE' + - 'SG' + - 'SH' + - 'SI' + - 'SJ' + - 'SK' + - 'SL' + - 'SM' + - 'SN' + - 'SO' + - 'SR' + - 'SS' + - 'ST' + - 'SV' + - 'SX' + - 'SY' + - 'SZ' + - 'TC' + - 'TD' + - 'TF' + - 'TG' + - 'TH' + - 'TJ' + - 'TK' + - 'TL' + - 'TM' + - 'TN' + - 'TO' + - 'TR' + - 'TT' + - 'TV' + - 'TW' + - 'TZ' + - 'UA' + - 'UG' + - 'UM' + - 'US' + - 'UY' + - 'UZ' + - 'VA' + - 'VC' + - 'VE' + - 'VG' + - 'VI' + - 'VN' + - 'VU' + - 'WF' + - 'WS' + - 'YE' + - 'YT' + - 'ZA' + - 'ZM' + - 'ZW' + type: 'string' x-speakeasy-unknown-values: allow - nullable: true - type: array + type: + - 'array' + - 'null' headquarters: - description: ISO 3166-1 Alpha-2 country code of the provider headquarters + description: 'ISO 3166-1 Alpha-2 country code of the provider headquarters' enum: - - AD - - AE - - AF - - AG - - AI - - AL - - AM - - AO - - AQ - - AR - - AS - - AT - - AU - - AW - - AX - - AZ - - BA - - BB - - BD - - BE - - BF - - BG - - BH - - BI - - BJ - - BL - - BM - - BN - - BO - - BQ - - BR - - BS - - BT - - BV - - BW - - BY - - BZ - - CA - - CC - - CD - - CF - - CG - - CH - - CI - - CK - - CL - - CM - - CN - - CO - - CR - - CU - - CV - - CW - - CX - - CY - - CZ - - DE - - DJ - - DK - - DM - - DO - - DZ - - EC - - EE - - EG - - EH - - ER - - ES - - ET - - FI - - FJ - - FK - - FM - - FO - - FR - - GA - - GB - - GD - - GE - - GF - - GG - - GH - - GI - - GL - - GM - - GN - - GP - - GQ - - GR - - GS - - GT - - GU - - GW - - GY - - HK - - HM - - HN - - HR - - HT - - HU - - ID - - IE - - IL - - IM - - IN - - IO - - IQ - - IR - - IS - - IT - - JE - - JM - - JO - - JP - - KE - - KG - - KH - - KI - - KM - - KN - - KP - - KR - - KW - - KY - - KZ - - LA - - LB - - LC - - LI - - LK - - LR - - LS - - LT - - LU - - LV - - LY - - MA - - MC - - MD - - ME - - MF - - MG - - MH - - MK - - ML - - MM - - MN - - MO - - MP - - MQ - - MR - - MS - - MT - - MU - - MV - - MW - - MX - - MY - - MZ - - NA - - NC - - NE - - NF - - NG - - NI - - NL + - 'AD' + - 'AE' + - 'AF' + - 'AG' + - 'AI' + - 'AL' + - 'AM' + - 'AO' + - 'AQ' + - 'AR' + - 'AS' + - 'AT' + - 'AU' + - 'AW' + - 'AX' + - 'AZ' + - 'BA' + - 'BB' + - 'BD' + - 'BE' + - 'BF' + - 'BG' + - 'BH' + - 'BI' + - 'BJ' + - 'BL' + - 'BM' + - 'BN' + - 'BO' + - 'BQ' + - 'BR' + - 'BS' + - 'BT' + - 'BV' + - 'BW' + - 'BY' + - 'BZ' + - 'CA' + - 'CC' + - 'CD' + - 'CF' + - 'CG' + - 'CH' + - 'CI' + - 'CK' + - 'CL' + - 'CM' + - 'CN' + - 'CO' + - 'CR' + - 'CU' + - 'CV' + - 'CW' + - 'CX' + - 'CY' + - 'CZ' + - 'DE' + - 'DJ' + - 'DK' + - 'DM' + - 'DO' + - 'DZ' + - 'EC' + - 'EE' + - 'EG' + - 'EH' + - 'ER' + - 'ES' + - 'ET' + - 'FI' + - 'FJ' + - 'FK' + - 'FM' + - 'FO' + - 'FR' + - 'GA' + - 'GB' + - 'GD' + - 'GE' + - 'GF' + - 'GG' + - 'GH' + - 'GI' + - 'GL' + - 'GM' + - 'GN' + - 'GP' + - 'GQ' + - 'GR' + - 'GS' + - 'GT' + - 'GU' + - 'GW' + - 'GY' + - 'HK' + - 'HM' + - 'HN' + - 'HR' + - 'HT' + - 'HU' + - 'ID' + - 'IE' + - 'IL' + - 'IM' + - 'IN' + - 'IO' + - 'IQ' + - 'IR' + - 'IS' + - 'IT' + - 'JE' + - 'JM' + - 'JO' + - 'JP' + - 'KE' + - 'KG' + - 'KH' + - 'KI' + - 'KM' + - 'KN' + - 'KP' + - 'KR' + - 'KW' + - 'KY' + - 'KZ' + - 'LA' + - 'LB' + - 'LC' + - 'LI' + - 'LK' + - 'LR' + - 'LS' + - 'LT' + - 'LU' + - 'LV' + - 'LY' + - 'MA' + - 'MC' + - 'MD' + - 'ME' + - 'MF' + - 'MG' + - 'MH' + - 'MK' + - 'ML' + - 'MM' + - 'MN' + - 'MO' + - 'MP' + - 'MQ' + - 'MR' + - 'MS' + - 'MT' + - 'MU' + - 'MV' + - 'MW' + - 'MX' + - 'MY' + - 'MZ' + - 'NA' + - 'NC' + - 'NE' + - 'NF' + - 'NG' + - 'NI' + - 'NL' - 'NO' - - NP - - NR - - NU - - NZ - - OM - - PA - - PE - - PF - - PG - - PH - - PK - - PL - - PM - - PN - - PR - - PS - - PT - - PW - - PY - - QA - - RE - - RO - - RS - - RU - - RW - - SA - - SB - - SC - - SD - - SE - - SG - - SH - - SI - - SJ - - SK - - SL - - SM - - SN - - SO - - SR - - SS - - ST - - SV - - SX - - SY - - SZ - - TC - - TD - - TF - - TG - - TH - - TJ - - TK - - TL - - TM - - TN - - TO - - TR - - TT - - TV - - TW - - TZ - - UA - - UG - - UM - - US - - UY - - UZ - - VA - - VC - - VE - - VG - - VI - - VN - - VU - - WF - - WS - - YE - - YT - - ZA - - ZM - - ZW + - 'NP' + - 'NR' + - 'NU' + - 'NZ' + - 'OM' + - 'PA' + - 'PE' + - 'PF' + - 'PG' + - 'PH' + - 'PK' + - 'PL' + - 'PM' + - 'PN' + - 'PR' + - 'PS' + - 'PT' + - 'PW' + - 'PY' + - 'QA' + - 'RE' + - 'RO' + - 'RS' + - 'RU' + - 'RW' + - 'SA' + - 'SB' + - 'SC' + - 'SD' + - 'SE' + - 'SG' + - 'SH' + - 'SI' + - 'SJ' + - 'SK' + - 'SL' + - 'SM' + - 'SN' + - 'SO' + - 'SR' + - 'SS' + - 'ST' + - 'SV' + - 'SX' + - 'SY' + - 'SZ' + - 'TC' + - 'TD' + - 'TF' + - 'TG' + - 'TH' + - 'TJ' + - 'TK' + - 'TL' + - 'TM' + - 'TN' + - 'TO' + - 'TR' + - 'TT' + - 'TV' + - 'TW' + - 'TZ' + - 'UA' + - 'UG' + - 'UM' + - 'US' + - 'UY' + - 'UZ' + - 'VA' + - 'VC' + - 'VE' + - 'VG' + - 'VI' + - 'VN' + - 'VU' + - 'WF' + - 'WS' + - 'YE' + - 'YT' + - 'ZA' + - 'ZM' + - 'ZW' - null - example: US - nullable: true - type: string + example: 'US' + type: + - 'string' + - 'null' x-speakeasy-unknown-values: allow name: - description: Display name of the provider - example: OpenAI - type: string + description: 'Display name of the provider' + example: 'OpenAI' + type: 'string' privacy_policy_url: - description: URL to the provider's privacy policy - example: https://openai.com/privacy - nullable: true - type: string + description: 'URL to the provider''s privacy policy' + example: 'https://openai.com/privacy' + type: + - 'string' + - 'null' slug: - description: URL-friendly identifier for the provider - example: openai - type: string + description: 'URL-friendly identifier for the provider' + example: 'openai' + type: 'string' status_page_url: - description: URL to the provider's status page - example: https://status.openai.com - nullable: true - type: string + description: 'URL to the provider''s status page' + example: 'https://status.openai.com' + type: + - 'string' + - 'null' terms_of_service_url: - description: URL to the provider's terms of service - example: https://openai.com/terms - nullable: true - type: string + description: 'URL to the provider''s terms of service' + example: 'https://openai.com/terms' + type: + - 'string' + - 'null' required: - - name - - slug - - privacy_policy_url - type: object - type: array + - 'name' + - 'slug' + - 'privacy_policy_url' + type: 'object' + type: 'array' required: - - data - type: object - description: Returns a list of providers + - 'data' + type: 'object' + description: 'Returns a list of providers' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List all providers + description: 'Internal Server Error - Unexpected server error' + summary: 'List all providers' tags: - - Providers - x-speakeasy-name-override: list + - 'Providers' + x-speakeasy-name-override: 'list' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /rerank: post: - description: Submits a rerank request to the rerank router - operationId: createRerank + description: 'Submits a rerank request to the rerank router' + operationId: 'createRerank' requestBody: content: application/json: schema: - description: Rerank request input + description: 'Rerank request input' example: documents: - - Paris is the capital of France. - - Berlin is the capital of Germany. - model: cohere/rerank-v3.5 - query: What is the capital of France? + - 'Paris is the capital of France.' + - 'Berlin is the capital of Germany.' + model: 'cohere/rerank-v3.5' + query: 'What is the capital of France?' top_n: 3 properties: documents: - description: >- - The list of documents to rerank. Documents may be plain strings, or structured objects with `text` and/or `image` for multimodal models. + description: 'The list of documents to rerank. Documents may be plain strings, or structured objects with `text` and/or `image` for multimodal models.' example: - - Paris is the capital of France. - - Berlin is the capital of Germany. + - 'Paris is the capital of France.' + - 'Berlin is the capital of Germany.' items: anyOf: - - type: string - - description: >- - A structured document with optional text and/or image content. At least one of `text` or `image` must be provided. + - type: 'string' + - description: 'A structured document with optional text and/or image content. At least one of `text` or `image` must be provided.' properties: image: - description: >- - An image associated with the document, as a remote URL (http/https) or a base64-encoded data URI (data:image/...). - example: https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Phytogenic.png - type: string + description: 'An image associated with the document, as a remote URL (http/https) or a base64-encoded data URI (data:image/...).' + example: 'https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Phytogenic.png' + type: 'string' text: - description: The document text - example: AI enables robots to perceive, plan, and act autonomously. - type: string - type: object - description: >- - A document to rerank. Either a plain string, or a structured object with optional `text` and/or `image`. + description: 'The document text' + example: 'AI enables robots to perceive, plan, and act autonomously.' + type: 'string' + type: 'object' + description: 'A document to rerank. Either a plain string, or a structured object with optional `text` and/or `image`.' minItems: 1 - type: array + type: 'array' model: - description: The rerank model to use - example: cohere/rerank-v3.5 - type: string + description: 'The rerank model to use' + example: 'cohere/rerank-v3.5' + type: 'string' provider: allOf: - $ref: '#/components/schemas/ProviderPreferences' - - description: Provider routing preferences for the request. + - description: 'Provider routing preferences for the request.' query: - description: The search query to rerank documents against - example: What is the capital of France? - type: string + description: 'The search query to rerank documents against' + example: 'What is the capital of France?' + type: 'string' top_n: - description: Number of most relevant documents to return + description: 'Number of most relevant documents to return' example: 3 minimum: 1 - type: integer + type: 'integer' required: - - model - - query - - documents - type: object + - 'model' + - 'query' + - 'documents' + type: 'object' required: true responses: '200': content: application/json: schema: - description: Rerank response containing ranked results + description: 'Rerank response containing ranked results' example: - id: gen-rerank-1234567890-abc - model: cohere/rerank-v3.5 + id: 'gen-rerank-1234567890-abc' + model: 'cohere/rerank-v3.5' results: - document: - text: Paris is the capital of France. + text: 'Paris is the capital of France.' index: 0 relevance_score: 0.98 usage: @@ -34089,208 +34151,207 @@ paths: total_tokens: 150 properties: id: - description: Unique identifier for the rerank response (ORID format) - example: gen-rerank-1234567890-abc - type: string + description: 'Unique identifier for the rerank response (ORID format)' + example: 'gen-rerank-1234567890-abc' + type: 'string' model: - description: The model used for reranking - example: cohere/rerank-v3.5 - type: string + description: 'The model used for reranking' + example: 'cohere/rerank-v3.5' + type: 'string' provider: - description: The provider that served the rerank request - example: Cohere - type: string + description: 'The provider that served the rerank request' + example: 'Cohere' + type: 'string' results: - description: List of rerank results sorted by relevance + description: 'List of rerank results sorted by relevance' example: - document: - text: Paris is the capital of France. + text: 'Paris is the capital of France.' index: 0 relevance_score: 0.98 items: - description: A single rerank result + description: 'A single rerank result' example: document: - text: Paris is the capital of France. + text: 'Paris is the capital of France.' index: 0 relevance_score: 0.98 properties: document: - description: The document object echoing the original input (text and/or image) + description: 'The document object echoing the original input (text and/or image)' properties: image: - description: The image (URL or data URI) from the original document - example: https://example.com/image.png - type: string + description: 'The image (URL or data URI) from the original document' + example: 'https://example.com/image.png' + type: 'string' text: - description: The document text - example: Paris is the capital of France. - type: string - type: object + description: 'The document text' + example: 'Paris is the capital of France.' + type: 'string' + type: 'object' index: - description: Index of the document in the original input list + description: 'Index of the document in the original input list' example: 0 - type: integer + type: 'integer' relevance_score: - description: Relevance score of the document to the query + description: 'Relevance score of the document to the query' example: 0.98 - format: double - type: number + format: 'double' + type: 'number' required: - - index - - relevance_score - - document - type: object - type: array + - 'index' + - 'relevance_score' + - 'document' + type: 'object' + type: 'array' usage: - description: Usage statistics + description: 'Usage statistics' example: search_units: 1 total_tokens: 150 properties: cost: - description: Cost of the request in credits + description: 'Cost of the request in credits' example: 0.001 - format: double - type: number + format: 'double' + type: 'number' search_units: - description: Number of search units consumed (Cohere billing) + description: 'Number of search units consumed (Cohere billing)' example: 1 - type: integer + type: 'integer' total_tokens: - description: Total number of tokens used + description: 'Total number of tokens used' example: 150 - type: integer - type: object + type: 'integer' + type: 'object' required: - - model - - results - type: object + - 'model' + - 'results' + type: 'object' text/event-stream: example: 'data: [DONE]' schema: - description: Not used for rerank - rerank does not support streaming - type: string + description: 'Not used for rerank - rerank does not support streaming' + type: 'string' x-speakeasy-sse-sentinel: '[DONE]' - description: Rerank response + description: 'Rerank response' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '402': content: application/json: example: error: code: 402 - message: Insufficient credits. Add more using https://openrouter.ai/credits + message: 'Insufficient credits. Add more using https://openrouter.ai/credits' schema: $ref: '#/components/schemas/PaymentRequiredResponse' - description: Payment Required - Insufficient credits or quota to complete request + description: 'Payment Required - Insufficient credits or quota to complete request' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' '502': content: application/json: example: error: code: 502 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/BadGatewayResponse' - description: Bad Gateway - Provider/upstream API failure + description: 'Bad Gateway - Provider/upstream API failure' '503': content: application/json: example: error: code: 503 - message: Service temporarily unavailable + message: 'Service temporarily unavailable' schema: $ref: '#/components/schemas/ServiceUnavailableResponse' - description: Service Unavailable - Service temporarily unavailable + description: 'Service Unavailable - Service temporarily unavailable' '524': content: application/json: example: error: code: 524 - message: Request timed out. Please try again later. + message: 'Request timed out. Please try again later.' schema: $ref: '#/components/schemas/EdgeNetworkTimeoutResponse' - description: Infrastructure Timeout - Provider request timed out at edge network + description: 'Infrastructure Timeout - Provider request timed out at edge network' '529': content: application/json: example: error: code: 529 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/ProviderOverloadedResponse' - description: Provider Overloaded - Provider is temporarily overloaded - summary: Submit a rerank request + description: 'Provider Overloaded - Provider is temporarily overloaded' + summary: 'Submit a rerank request' tags: - - Rerank - x-speakeasy-name-override: rerank + - 'Rerank' + x-speakeasy-name-override: 'rerank' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /responses: post: - description: Creates a streaming or non-streaming response using OpenResponses API format - operationId: createResponses + description: 'Creates a streaming or non-streaming response using OpenResponses API format' + operationId: 'createResponses' parameters: - - description: >- - Opt-in to surface routing metadata on the response under `openrouter_metadata`. Defaults to `disabled`. The legacy header `X-OpenRouter-Experimental-Metadata` is also accepted for backward compatibility. - example: enabled - in: header - name: X-OpenRouter-Metadata + - description: 'Opt-in to surface routing metadata on the response under `openrouter_metadata`. Defaults to `disabled`. The legacy header `X-OpenRouter-Experimental-Metadata` is also accepted for backward compatibility.' + example: 'enabled' + in: 'header' + name: 'X-OpenRouter-Metadata' required: false schema: $ref: '#/components/schemas/MetadataLevel' @@ -34298,8 +34359,8 @@ paths: content: application/json: example: - input: Tell me a joke - model: openai/gpt-4o + input: 'Tell me a joke' + model: 'openai/gpt-4o' schema: $ref: '#/components/schemas/ResponsesRequest' required: true @@ -34308,233 +34369,257 @@ paths: content: application/json: example: + completed_at: 1700000010 created_at: 1700000000 - id: resp_abc123 - model: openai/gpt-4o - object: response + error: null + frequency_penalty: null + id: 'resp_abc123' + incomplete_details: null + instructions: null + max_output_tokens: null + metadata: null + model: 'openai/gpt-4o' + object: 'response' output: - content: - - text: Why did the chicken cross the road? To get to the other side! - type: output_text - role: assistant - type: message - status: completed + - annotations: [] + text: 'Why did the chicken cross the road? To get to the other side!' + type: 'output_text' + id: 'msg-abc123' + role: 'assistant' + status: 'completed' + type: 'message' + parallel_tool_calls: true + presence_penalty: null + status: 'completed' + temperature: null + tool_choice: 'auto' + tools: [] + top_p: null usage: - completion_tokens: 20 - prompt_tokens: 10 + input_tokens: 10 + input_tokens_details: + cached_tokens: 0 + output_tokens: 20 + output_tokens_details: + reasoning_tokens: 0 total_tokens: 30 schema: $ref: '#/components/schemas/OpenResponsesResult' text/event-stream: example: data: - delta: Hello - type: response.output_text.delta + content_index: 0 + delta: 'Hello' + item_id: 'item-1' + logprobs: [] + output_index: 0 + sequence_number: 4 + type: 'response.output_text.delta' schema: $ref: '#/components/schemas/ResponsesStreamingResponse' x-speakeasy-sse-sentinel: '[DONE]' - description: Successful response + description: 'Successful response' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '402': content: application/json: example: error: code: 402 - message: Insufficient credits. Add more using https://openrouter.ai/credits + message: 'Insufficient credits. Add more using https://openrouter.ai/credits' schema: $ref: '#/components/schemas/PaymentRequiredResponse' - description: Payment Required - Insufficient credits or quota to complete request + description: 'Payment Required - Insufficient credits or quota to complete request' '403': content: application/json: examples: guardrail-blocked: - summary: Guardrail blocked the request + summary: 'Guardrail blocked the request' value: error: code: 403 message: 'Request blocked: prompt injection patterns detected' metadata: patterns: - - ignore all previous instructions + - 'ignore all previous instructions' openrouter_metadata: attempt: 1 endpoints: available: - - model: openai/gpt-4o - provider: OpenAI + - model: 'openai/gpt-4o' + provider: 'OpenAI' selected: false total: 1 is_byok: false pipeline: - data: - action: blocked + action: 'blocked' detected: true engines: - - regex + - 'regex' patterns: - - ignore all previous instructions - guardrail_id: grd_abc123 - guardrail_scope: api-key - name: regex_pi_detection + - 'ignore all previous instructions' + guardrail_id: 'grd_abc123' + guardrail_scope: 'api-key' + name: 'regex_pi_detection' summary: 'Blocked: prompt injection detected (1 pattern matched)' - type: guardrail - region: iad - requested: openai/gpt-4o - strategy: direct - summary: available=1 + type: 'guardrail' + region: 'iad' + requested: 'openai/gpt-4o' + strategy: 'direct' + summary: 'available=1' insufficient-permissions: - summary: Insufficient permissions + summary: 'Insufficient permissions' value: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: >- - Forbidden - Authentication successful but insufficient permissions, or a guardrail blocked the request. When guardrails block and the `X-OpenRouter-Metadata: enabled` header is present, the response includes `openrouter_metadata` with full routing context and a `pipeline` array containing guardrail stage details. + description: 'Forbidden - Authentication successful but insufficient permissions, or a guardrail blocked the request. When guardrails block and the `X-OpenRouter-Metadata: enabled` header is present, the response includes `openrouter_metadata` with full routing context and a `pipeline` array containing guardrail stage details.' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '408': content: application/json: example: error: code: 408 - message: Operation timed out. Please try again later. + message: 'Operation timed out. Please try again later.' schema: $ref: '#/components/schemas/RequestTimeoutResponse' - description: Request Timeout - Operation exceeded time limit + description: 'Request Timeout - Operation exceeded time limit' '413': content: application/json: example: error: code: 413 - message: Request payload too large + message: 'Request payload too large' schema: $ref: '#/components/schemas/PayloadTooLargeResponse' - description: Payload Too Large - Request payload exceeds size limits + description: 'Payload Too Large - Request payload exceeds size limits' '422': content: application/json: example: error: code: 422 - message: Invalid argument + message: 'Invalid argument' schema: $ref: '#/components/schemas/UnprocessableEntityResponse' - description: Unprocessable Entity - Semantic validation failure + description: 'Unprocessable Entity - Semantic validation failure' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' '502': content: application/json: example: error: code: 502 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/BadGatewayResponse' - description: Bad Gateway - Provider/upstream API failure + description: 'Bad Gateway - Provider/upstream API failure' '503': content: application/json: example: error: code: 503 - message: Service temporarily unavailable + message: 'Service temporarily unavailable' schema: $ref: '#/components/schemas/ServiceUnavailableResponse' - description: Service Unavailable - Service temporarily unavailable + description: 'Service Unavailable - Service temporarily unavailable' '524': content: application/json: example: error: code: 524 - message: Request timed out. Please try again later. + message: 'Request timed out. Please try again later.' schema: $ref: '#/components/schemas/EdgeNetworkTimeoutResponse' - description: Infrastructure Timeout - Provider request timed out at edge network + description: 'Infrastructure Timeout - Provider request timed out at edge network' '529': content: application/json: example: error: code: 529 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/ProviderOverloadedResponse' - description: Provider Overloaded - Provider is temporarily overloaded - summary: Create a response + description: 'Provider Overloaded - Provider is temporarily overloaded' + summary: 'Create a response' tags: - - beta.responses - x-speakeasy-name-override: send - x-speakeasy-stream-request-field: stream + - 'beta.responses' + x-speakeasy-name-override: 'send' + x-speakeasy-stream-request-field: 'stream' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /videos: post: - description: Submits a video generation request and returns a polling URL to check status - operationId: createVideos + description: 'Submits a video generation request and returns a polling URL to check status' + operationId: 'createVideos' requestBody: content: application/json: example: aspect_ratio: '16:9' duration: 8 - model: google/veo-3.1 - prompt: A serene mountain landscape at sunset - resolution: 720p + model: 'google/veo-3.1' + prompt: 'A serene mountain landscape at sunset' + resolution: '720p' schema: $ref: '#/components/schemas/VideoGenerationRequest' required: true @@ -34543,240 +34628,240 @@ paths: content: application/json: example: - generation_id: gen-xyz789 - id: job-abc123 - polling_url: /api/v1/videos/job-abc123 - status: pending + generation_id: 'gen-xyz789' + id: 'job-abc123' + polling_url: '/api/v1/videos/job-abc123' + status: 'pending' schema: $ref: '#/components/schemas/VideoGenerationResponse' - description: Video generation request accepted + description: 'Video generation request accepted' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '402': content: application/json: example: error: code: 402 - message: Insufficient credits. Add more using https://openrouter.ai/credits + message: 'Insufficient credits. Add more using https://openrouter.ai/credits' schema: $ref: '#/components/schemas/PaymentRequiredResponse' - description: Payment Required - Insufficient credits or quota to complete request + description: 'Payment Required - Insufficient credits or quota to complete request' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '429': content: application/json: example: error: code: 429 - message: Rate limit exceeded + message: 'Rate limit exceeded' schema: $ref: '#/components/schemas/TooManyRequestsResponse' - description: Too Many Requests - Rate limit exceeded + description: 'Too Many Requests - Rate limit exceeded' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Submit a video generation request + description: 'Internal Server Error - Unexpected server error' + summary: 'Submit a video generation request' tags: - - Video Generation - x-speakeasy-name-override: generate + - 'Video Generation' + x-speakeasy-name-override: 'generate' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /videos/{jobId}: get: - description: Returns job status and content URLs when completed - operationId: getVideos + description: 'Returns job status and content URLs when completed' + operationId: 'getVideos' parameters: - - in: path - name: jobId + - in: 'path' + name: 'jobId' required: true schema: - example: job-abc123 + example: 'job-abc123' minLength: 1 - type: string + type: 'string' responses: '200': content: application/json: example: - generation_id: gen-xyz789 - id: job-abc123 - polling_url: /api/v1/videos/job-abc123 - status: completed + generation_id: 'gen-xyz789' + id: 'job-abc123' + polling_url: '/api/v1/videos/job-abc123' + status: 'completed' unsigned_urls: - - https://storage.example.com/video.mp4 + - 'https://storage.example.com/video.mp4' usage: cost: 0.5 schema: $ref: '#/components/schemas/VideoGenerationResponse' - description: Video generation status + description: 'Video generation status' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Poll video generation status + description: 'Internal Server Error - Unexpected server error' + summary: 'Poll video generation status' tags: - - Video Generation - x-speakeasy-name-override: getGeneration + - 'Video Generation' + x-speakeasy-name-override: 'getGeneration' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /videos/{jobId}/content: get: - description: Streams the generated video content from the upstream provider - operationId: listVideosContent + description: 'Streams the generated video content from the upstream provider' + operationId: 'listVideosContent' parameters: - - in: path - name: jobId + - in: 'path' + name: 'jobId' required: true schema: - example: job-abc123 + example: 'job-abc123' minLength: 1 - type: string - - in: query - name: index + type: 'string' + - in: 'query' + name: 'index' required: false schema: default: 0 example: 0 minimum: 0 - nullable: true - type: integer + type: + - 'integer' + - 'null' responses: '200': content: video/mp4: - example: + example: '' schema: - format: binary - type: string - description: >- - Video content stream. The body is the raw video bytes proxied from the upstream provider, and the Content-Type reflects the provider media type (video/mp4). + format: 'binary' + type: 'string' + description: 'Video content stream. The body is the raw video bytes proxied from the upstream provider, and the Content-Type reflects the provider media type (video/mp4).' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error + description: 'Internal Server Error - Unexpected server error' '502': content: application/json: example: error: code: 502 - message: Provider returned error + message: 'Provider returned error' schema: $ref: '#/components/schemas/BadGatewayResponse' - description: Bad Gateway - Provider/upstream API failure - summary: Download generated video content + description: 'Bad Gateway - Provider/upstream API failure' + summary: 'Download generated video content' tags: - - Video Generation - x-speakeasy-name-override: getVideoContent + - 'Video Generation' + x-speakeasy-name-override: 'getVideoContent' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /videos/models: get: - description: Returns a list of all available video generation models and their properties - operationId: listVideosModels + description: 'Returns a list of all available video generation models and their properties' + operationId: 'listVideosModels' responses: '200': content: @@ -34784,12 +34869,12 @@ paths: example: data: - allowed_passthrough_parameters: [] - canonical_slug: google/veo-3.1 + canonical_slug: 'google/veo-3.1' created: 1700000000 - description: Google video generation model + description: 'Google video generation model' generate_audio: true - id: google/veo-3.1 - name: Veo 3.1 + id: 'google/veo-3.1' + name: 'Veo 3.1' pricing_skus: generate: '0.50' seed: null @@ -34799,69 +34884,70 @@ paths: - 5 - 8 supported_frame_images: - - first_frame - - last_frame + - 'first_frame' + - 'last_frame' supported_resolutions: - - 720p + - '720p' supported_sizes: null schema: $ref: '#/components/schemas/VideoModelsListResponse' - description: Returns a list of video generation models + description: 'Returns a list of video generation models' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List all video generation models + description: 'Internal Server Error - Unexpected server error' + summary: 'List all video generation models' tags: - - Video Generation + - 'Video Generation' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /workspaces: get: - description: >- - List all workspaces for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: listWorkspaces + description: 'List all workspaces for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'listWorkspaces' parameters: - - description: Number of records to skip for pagination - in: query - name: offset + - description: 'Number of records to skip for pagination' + in: 'query' + name: 'offset' required: false schema: default: 0 - description: Number of records to skip for pagination + description: 'Number of records to skip for pagination' example: 0 minimum: 0 + type: + - 'integer' + - 'null' nullable: false - type: integer - - description: Maximum number of records to return (max 100) - in: query - name: limit + - description: 'Maximum number of records to return (max 100)' + in: 'query' + name: 'limit' required: false schema: default: 50 - description: Maximum number of records to return (max 100) + description: 'Maximum number of records to return (max 100)' example: 50 maximum: 100 minimum: 1 - type: integer + type: 'integer' responses: '200': content: @@ -34869,73 +34955,72 @@ paths: example: data: - created_at: '2025-08-24T10:30:00Z' - created_by: user_abc123 - default_image_model: openai/dall-e-3 - default_provider_sort: price - default_text_model: openai/gpt-4o - description: Production environment workspace - id: 550e8400-e29b-41d4-a716-446655440000 + created_by: 'user_abc123' + default_image_model: 'openai/dall-e-3' + default_provider_sort: 'price' + default_text_model: 'openai/gpt-4o' + description: 'Production environment workspace' + id: '550e8400-e29b-41d4-a716-446655440000' io_logging_api_key_ids: null io_logging_sampling_rate: 1 is_data_discount_logging_enabled: true is_observability_broadcast_enabled: false is_observability_io_logging_enabled: false - name: Production - slug: production + name: 'Production' + slug: 'production' updated_at: '2025-08-24T15:45:00Z' total_count: 1 schema: $ref: '#/components/schemas/ListWorkspacesResponse' - description: List of workspaces + description: 'List of workspaces' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List workspaces + description: 'Internal Server Error - Unexpected server error' + summary: 'List workspaces' tags: - - Workspaces - x-speakeasy-name-override: list + - 'Workspaces' + x-speakeasy-name-override: 'list' x-speakeasy-pagination: inputs: - - in: parameters - name: offset - type: offset - - in: parameters - name: limit - type: limit + - in: 'parameters' + name: 'offset' + type: 'offset' + - in: 'parameters' + name: 'limit' + type: 'limit' outputs: - results: $.data - type: offsetLimit + results: '$.data' + type: 'offsetLimit' post: - description: >- - Create a new workspace for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: createWorkspace + description: 'Create a new workspace for the authenticated user. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'createWorkspace' requestBody: content: application/json: example: - default_image_model: openai/dall-e-3 - default_provider_sort: price - default_text_model: openai/gpt-4o - description: Production environment workspace - name: Production - slug: production + default_image_model: 'openai/dall-e-3' + default_provider_sort: 'price' + default_text_model: 'openai/gpt-4o' + description: 'Production environment workspace' + name: 'Production' + slug: 'production' schema: $ref: '#/components/schemas/CreateWorkspaceRequest' required: true @@ -34946,86 +35031,85 @@ paths: example: data: created_at: '2025-08-24T10:30:00Z' - created_by: user_abc123 - default_image_model: openai/dall-e-3 - default_provider_sort: price - default_text_model: openai/gpt-4o - description: Production environment workspace - id: 550e8400-e29b-41d4-a716-446655440000 + created_by: 'user_abc123' + default_image_model: 'openai/dall-e-3' + default_provider_sort: 'price' + default_text_model: 'openai/gpt-4o' + description: 'Production environment workspace' + id: '550e8400-e29b-41d4-a716-446655440000' io_logging_api_key_ids: null io_logging_sampling_rate: 1 is_data_discount_logging_enabled: true is_observability_broadcast_enabled: false is_observability_io_logging_enabled: false - name: Production - slug: production + name: 'Production' + slug: 'production' updated_at: null schema: $ref: '#/components/schemas/CreateWorkspaceResponse' - description: Workspace created successfully + description: 'Workspace created successfully' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Create a workspace + description: 'Internal Server Error - Unexpected server error' + summary: 'Create a workspace' tags: - - Workspaces - x-speakeasy-name-override: create + - 'Workspaces' + x-speakeasy-name-override: 'create' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /workspaces/{id}: delete: - description: >- - Delete an existing workspace. The default workspace cannot be deleted. Workspaces with active API keys cannot be deleted; remove the keys first. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: deleteWorkspace + description: 'Delete an existing workspace. The default workspace cannot be deleted. Workspaces with active API keys cannot be deleted; remove the keys first. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'deleteWorkspace' parameters: - - description: The workspace ID (UUID) or slug - in: path - name: id + - description: 'The workspace ID (UUID) or slug' + in: 'path' + name: 'id' required: true schema: - description: The workspace ID (UUID) or slug - example: production + description: 'The workspace ID (UUID) or slug' + example: 'production' minLength: 1 - type: string + type: 'string' responses: '200': content: @@ -35034,74 +35118,74 @@ paths: deleted: true schema: $ref: '#/components/schemas/DeleteWorkspaceResponse' - description: Workspace deleted successfully + description: 'Workspace deleted successfully' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Delete a workspace + description: 'Internal Server Error - Unexpected server error' + summary: 'Delete a workspace' tags: - - Workspaces - x-speakeasy-name-override: delete + - 'Workspaces' + x-speakeasy-name-override: 'delete' get: - description: Get a single workspace by ID or slug. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: getWorkspace + description: 'Get a single workspace by ID or slug. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'getWorkspace' parameters: - - description: The workspace ID (UUID) or slug - in: path - name: id + - description: 'The workspace ID (UUID) or slug' + in: 'path' + name: 'id' required: true schema: - description: The workspace ID (UUID) or slug - example: production + description: 'The workspace ID (UUID) or slug' + example: 'production' minLength: 1 - type: string + type: 'string' responses: '200': content: @@ -35109,77 +35193,76 @@ paths: example: data: created_at: '2025-08-24T10:30:00Z' - created_by: user_abc123 - default_image_model: openai/dall-e-3 - default_provider_sort: price - default_text_model: openai/gpt-4o - description: Production environment workspace - id: 550e8400-e29b-41d4-a716-446655440000 + created_by: 'user_abc123' + default_image_model: 'openai/dall-e-3' + default_provider_sort: 'price' + default_text_model: 'openai/gpt-4o' + description: 'Production environment workspace' + id: '550e8400-e29b-41d4-a716-446655440000' io_logging_api_key_ids: null io_logging_sampling_rate: 1 is_data_discount_logging_enabled: true is_observability_broadcast_enabled: false is_observability_io_logging_enabled: false - name: Production - slug: production + name: 'Production' + slug: 'production' updated_at: '2025-08-24T15:45:00Z' schema: $ref: '#/components/schemas/GetWorkspaceResponse' - description: Workspace details + description: 'Workspace details' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Get a workspace + description: 'Internal Server Error - Unexpected server error' + summary: 'Get a workspace' tags: - - Workspaces - x-speakeasy-name-override: get + - 'Workspaces' + x-speakeasy-name-override: 'get' patch: - description: >- - Update an existing workspace by ID or slug. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: updateWorkspace + description: 'Update an existing workspace by ID or slug. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'updateWorkspace' parameters: - - description: The workspace ID (UUID) or slug - in: path - name: id + - description: 'The workspace ID (UUID) or slug' + in: 'path' + name: 'id' required: true schema: - description: The workspace ID (UUID) or slug - example: production + description: 'The workspace ID (UUID) or slug' + example: 'production' minLength: 1 - type: string + type: 'string' requestBody: content: application/json: example: - name: Updated Workspace - slug: updated-workspace + name: 'Updated Workspace' + slug: 'updated-workspace' schema: $ref: '#/components/schemas/UpdateWorkspaceRequest' required: true @@ -35190,96 +35273,95 @@ paths: example: data: created_at: '2025-08-24T10:30:00Z' - created_by: user_abc123 - default_image_model: openai/dall-e-3 - default_provider_sort: price - default_text_model: openai/gpt-4o - description: Production environment workspace - id: 550e8400-e29b-41d4-a716-446655440000 + created_by: 'user_abc123' + default_image_model: 'openai/dall-e-3' + default_provider_sort: 'price' + default_text_model: 'openai/gpt-4o' + description: 'Production environment workspace' + id: '550e8400-e29b-41d4-a716-446655440000' io_logging_api_key_ids: null io_logging_sampling_rate: 1 is_data_discount_logging_enabled: true is_observability_broadcast_enabled: false is_observability_io_logging_enabled: false - name: Updated Workspace - slug: updated-workspace + name: 'Updated Workspace' + slug: 'updated-workspace' updated_at: '2025-08-25T10:00:00Z' schema: $ref: '#/components/schemas/UpdateWorkspaceResponse' - description: Workspace updated successfully + description: 'Workspace updated successfully' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Update a workspace + description: 'Internal Server Error - Unexpected server error' + summary: 'Update a workspace' tags: - - Workspaces - x-speakeasy-name-override: update + - 'Workspaces' + x-speakeasy-name-override: 'update' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /workspaces/{id}/budgets: get: - description: >- - List all budgets configured for a workspace. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: listWorkspaceBudgets + description: 'List all budgets configured for a workspace. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'listWorkspaceBudgets' parameters: - - description: The workspace ID (UUID) or slug - in: path - name: id + - description: 'The workspace ID (UUID) or slug' + in: 'path' + name: 'id' required: true schema: - description: The workspace ID (UUID) or slug - example: production + description: 'The workspace ID (UUID) or slug' + example: 'production' minLength: 1 - type: string + type: 'string' responses: '200': content: @@ -35287,71 +35369,70 @@ paths: example: data: - created_at: '2025-08-24T10:30:00Z' - id: 770e8400-e29b-41d4-a716-446655440000 + id: '770e8400-e29b-41d4-a716-446655440000' limit_usd: 100 - reset_interval: monthly + reset_interval: 'monthly' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' schema: $ref: '#/components/schemas/ListWorkspaceBudgetsResponse' - description: Budgets retrieved successfully + description: 'Budgets retrieved successfully' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List workspace budgets + description: 'Internal Server Error - Unexpected server error' + summary: 'List workspace budgets' tags: - - Workspaces - x-speakeasy-name-override: listBudgets + - 'Workspaces' + x-speakeasy-name-override: 'listBudgets' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /workspaces/{id}/budgets/{interval}: delete: - description: >- - Remove the budget for a given interval. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: deleteWorkspaceBudget + description: 'Remove the budget for a given interval. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'deleteWorkspaceBudget' parameters: - - description: The workspace ID (UUID) or slug - in: path - name: id + - description: 'The workspace ID (UUID) or slug' + in: 'path' + name: 'id' required: true schema: - description: The workspace ID (UUID) or slug - example: production + description: 'The workspace ID (UUID) or slug' + example: 'production' minLength: 1 - type: string - - description: Budget reset interval. Use "lifetime" for a one-time budget that never resets. - example: monthly - in: path - name: interval + type: 'string' + - description: 'Budget reset interval. Use "lifetime" for a one-time budget that never resets.' + example: 'monthly' + in: 'path' + name: 'interval' required: true schema: $ref: '#/components/schemas/WorkspaceBudgetInterval' @@ -35363,59 +35444,58 @@ paths: deleted: true schema: $ref: '#/components/schemas/DeleteWorkspaceBudgetResponse' - description: Budget deleted successfully + description: 'Budget deleted successfully' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Delete a workspace budget + description: 'Internal Server Error - Unexpected server error' + summary: 'Delete a workspace budget' tags: - - Workspaces - x-speakeasy-name-override: deleteBudget + - 'Workspaces' + x-speakeasy-name-override: 'deleteBudget' put: - description: >- - Create or update the budget for a given interval. Budget limits must strictly decrease as the interval narrows (lifetime > monthly > weekly > daily). [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: upsertWorkspaceBudget + description: 'Create or update the budget for a given interval. Budget limits must strictly decrease as the interval narrows (lifetime > monthly > weekly > daily). [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'upsertWorkspaceBudget' parameters: - - description: The workspace ID (UUID) or slug - in: path - name: id + - description: 'The workspace ID (UUID) or slug' + in: 'path' + name: 'id' required: true schema: - description: The workspace ID (UUID) or slug - example: production + description: 'The workspace ID (UUID) or slug' + example: 'production' minLength: 1 - type: string - - description: Budget reset interval. Use "lifetime" for a one-time budget that never resets. - example: monthly - in: path - name: interval + type: 'string' + - description: 'Budget reset interval. Use "lifetime" for a one-time budget that never resets.' + example: 'monthly' + in: 'path' + name: 'interval' required: true schema: $ref: '#/components/schemas/WorkspaceBudgetInterval' @@ -35434,99 +35514,100 @@ paths: example: data: created_at: '2025-08-24T10:30:00Z' - id: 770e8400-e29b-41d4-a716-446655440000 + id: '770e8400-e29b-41d4-a716-446655440000' limit_usd: 100 - reset_interval: monthly + reset_interval: 'monthly' updated_at: '2025-08-24T15:45:00Z' - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + workspace_id: '550e8400-e29b-41d4-a716-446655440000' schema: $ref: '#/components/schemas/UpsertWorkspaceBudgetResponse' - description: Budget created or updated successfully + description: 'Budget created or updated successfully' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Create or update a workspace budget + description: 'Internal Server Error - Unexpected server error' + summary: 'Create or update a workspace budget' tags: - - Workspaces - x-speakeasy-name-override: setBudget + - 'Workspaces' + x-speakeasy-name-override: 'setBudget' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /workspaces/{id}/members: get: - description: >- - List all members of a workspace. Returns paginated results. For the default workspace, returns all organization members (implicit membership). [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: listWorkspaceMembers + description: 'List all members of a workspace. Returns paginated results. For the default workspace, returns all organization members (implicit membership). [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'listWorkspaceMembers' parameters: - - description: The workspace ID (UUID) or slug - in: path - name: id + - description: 'The workspace ID (UUID) or slug' + in: 'path' + name: 'id' required: true schema: - description: The workspace ID (UUID) or slug - example: production + description: 'The workspace ID (UUID) or slug' + example: 'production' minLength: 1 - type: string - - description: Number of records to skip for pagination - in: query - name: offset + type: 'string' + - description: 'Number of records to skip for pagination' + in: 'query' + name: 'offset' required: false schema: default: 0 - description: Number of records to skip for pagination + description: 'Number of records to skip for pagination' example: 0 minimum: 0 + type: + - 'integer' + - 'null' nullable: false - type: integer - - description: Maximum number of records to return (max 100) - in: query - name: limit + - description: 'Maximum number of records to return (max 100)' + in: 'query' + name: 'limit' required: false schema: default: 50 - description: Maximum number of records to return (max 100) + description: 'Maximum number of records to return (max 100)' example: 50 maximum: 100 minimum: 1 - type: integer + type: 'integer' responses: '200': content: @@ -35534,95 +35615,94 @@ paths: example: data: - created_at: '2025-08-24T10:30:00Z' - id: 660e8400-e29b-41d4-a716-446655440000 - role: member - user_id: user_abc123 - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + id: '660e8400-e29b-41d4-a716-446655440000' + role: 'member' + user_id: 'user_abc123' + workspace_id: '550e8400-e29b-41d4-a716-446655440000' total_count: 1 schema: $ref: '#/components/schemas/ListWorkspaceMembersResponse' - description: List of workspace members + description: 'List of workspace members' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: List workspace members + description: 'Internal Server Error - Unexpected server error' + summary: 'List workspace members' tags: - - Workspaces - x-speakeasy-name-override: listMembers + - 'Workspaces' + x-speakeasy-name-override: 'listMembers' x-speakeasy-pagination: inputs: - - in: parameters - name: offset - type: offset - - in: parameters - name: limit - type: limit + - in: 'parameters' + name: 'offset' + type: 'offset' + - in: 'parameters' + name: 'limit' + type: 'limit' outputs: - results: $.data - type: offsetLimit + results: '$.data' + type: 'offsetLimit' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /workspaces/{id}/members/add: post: - description: >- - Add multiple organization members to a workspace. Members are assigned the same role they hold in the organization. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: bulkAddWorkspaceMembers + description: 'Add multiple organization members to a workspace. Members are assigned the same role they hold in the organization. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'bulkAddWorkspaceMembers' parameters: - - description: The workspace ID (UUID) or slug - in: path - name: id + - description: 'The workspace ID (UUID) or slug' + in: 'path' + name: 'id' required: true schema: - description: The workspace ID (UUID) or slug - example: production + description: 'The workspace ID (UUID) or slug' + example: 'production' minLength: 1 - type: string + type: 'string' requestBody: content: application/json: example: user_ids: - - user_abc123 - - user_def456 + - 'user_abc123' + - 'user_def456' schema: $ref: '#/components/schemas/BulkAddWorkspaceMembersRequest' required: true @@ -35634,93 +35714,92 @@ paths: added_count: 1 data: - created_at: '2025-08-24T10:30:00Z' - id: 660e8400-e29b-41d4-a716-446655440000 - role: member - user_id: user_abc123 - workspace_id: 550e8400-e29b-41d4-a716-446655440000 + id: '660e8400-e29b-41d4-a716-446655440000' + role: 'member' + user_id: 'user_abc123' + workspace_id: '550e8400-e29b-41d4-a716-446655440000' schema: $ref: '#/components/schemas/BulkAddWorkspaceMembersResponse' - description: Members added successfully + description: 'Members added successfully' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Bulk add members to a workspace + description: 'Internal Server Error - Unexpected server error' + summary: 'Bulk add members to a workspace' tags: - - Workspaces - x-speakeasy-name-override: bulkAddMembers + - 'Workspaces' + x-speakeasy-name-override: 'bulkAddMembers' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" - $ref: "#/components/parameters/AppCategories" /workspaces/{id}/members/remove: post: - description: >- - Remove multiple members from a workspace. Members with active API keys in the workspace cannot be removed. SCIM-managed members cannot be removed; changes must be made in your identity provider. [Management key](/docs/guides/overview/auth/management-api-keys) required. - operationId: bulkRemoveWorkspaceMembers + description: 'Remove multiple members from a workspace. Members with active API keys in the workspace cannot be removed. SCIM-managed members cannot be removed; changes must be made in your identity provider. [Management key](/docs/guides/overview/auth/management-api-keys) required.' + operationId: 'bulkRemoveWorkspaceMembers' parameters: - - description: The workspace ID (UUID) or slug - in: path - name: id + - description: 'The workspace ID (UUID) or slug' + in: 'path' + name: 'id' required: true schema: - description: The workspace ID (UUID) or slug - example: production + description: 'The workspace ID (UUID) or slug' + example: 'production' minLength: 1 - type: string + type: 'string' requestBody: content: application/json: example: user_ids: - - user_abc123 - - user_def456 + - 'user_abc123' + - 'user_def456' schema: $ref: '#/components/schemas/BulkRemoveWorkspaceMembersRequest' required: true @@ -35732,61 +35811,61 @@ paths: removed_count: 2 schema: $ref: '#/components/schemas/BulkRemoveWorkspaceMembersResponse' - description: Members removed successfully + description: 'Members removed successfully' '400': content: application/json: example: error: code: 400 - message: Invalid request parameters + message: 'Invalid request parameters' schema: $ref: '#/components/schemas/BadRequestResponse' - description: Bad Request - Invalid request parameters or malformed input + description: 'Bad Request - Invalid request parameters or malformed input' '401': content: application/json: example: error: code: 401 - message: Missing Authentication header + message: 'Missing Authentication header' schema: $ref: '#/components/schemas/UnauthorizedResponse' - description: Unauthorized - Authentication required or invalid credentials + description: 'Unauthorized - Authentication required or invalid credentials' '403': content: application/json: example: error: code: 403 - message: Only management keys can perform this operation + message: 'Only management keys can perform this operation' schema: $ref: '#/components/schemas/ForbiddenResponse' - description: Forbidden - Authentication successful but insufficient permissions + description: 'Forbidden - Authentication successful but insufficient permissions' '404': content: application/json: example: error: code: 404 - message: Resource not found + message: 'Resource not found' schema: $ref: '#/components/schemas/NotFoundResponse' - description: Not Found - Resource does not exist + description: 'Not Found - Resource does not exist' '500': content: application/json: example: error: code: 500 - message: Internal Server Error + message: 'Internal Server Error' schema: $ref: '#/components/schemas/InternalServerResponse' - description: Internal Server Error - Unexpected server error - summary: Bulk remove members from a workspace + description: 'Internal Server Error - Unexpected server error' + summary: 'Bulk remove members from a workspace' tags: - - Workspaces - x-speakeasy-name-override: bulkRemoveMembers + - 'Workspaces' + x-speakeasy-name-override: 'bulkRemoveMembers' parameters: - $ref: "#/components/parameters/AppIdentifier" - $ref: "#/components/parameters/AppDisplayName" @@ -35794,73 +35873,73 @@ paths: security: - apiKey: [] servers: - - description: Production server - url: https://openrouter.ai/api/v1 - x-speakeasy-server-id: production + - description: 'Production server' + url: 'https://openrouter.ai/api/v1' + x-speakeasy-server-id: 'production' 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: Datasets endpoints - 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: 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 - - description: beta.responses endpoints - name: beta.responses + - 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: 'Datasets endpoints' + 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: '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' + - description: 'beta.responses endpoints' + name: 'beta.responses' x-retry-strategy: initialDelay: 500 maxAttempts: 3 maxDelay: 60000 - type: exponential + type: 'exponential' x-speakeasy-retries: backoff: exponent: 1.5 @@ -35869,8 +35948,8 @@ x-speakeasy-retries: maxInterval: 60000 retryConnectionErrors: true statusCodes: - - 5XX - strategy: backoff + - '5XX' + strategy: 'backoff' x-speakeasy-globals: parameters: - $ref: "#/components/parameters/AppIdentifier" diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index f02695b4..5fb1d700 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -2,8 +2,8 @@ speakeasyVersion: 1.787.0 sources: OpenRouter API: sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:eeaf4cc6f02e478e9edffc7fcca17be022874404e1cd17609778052606aaf6a2 - sourceBlobDigest: sha256:7aca954e3712e19b2bc75625f1859dca5bb1ce3eefba62e8d5172c2649612a0f + sourceRevisionDigest: sha256:01ed253d8100ccf0f0115ad3f4b017e29a8aa6a0fd8aa64da29d690788d5f320 + sourceBlobDigest: sha256:789c982cea01b8f1fcc225b7e267369c9d0cb72a8d575c5c5bfb59af017601f7 tags: - latest - 1.0.0 @@ -11,10 +11,10 @@ targets: open-router: source: OpenRouter API sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:eeaf4cc6f02e478e9edffc7fcca17be022874404e1cd17609778052606aaf6a2 - sourceBlobDigest: sha256:7aca954e3712e19b2bc75625f1859dca5bb1ce3eefba62e8d5172c2649612a0f + sourceRevisionDigest: sha256:01ed253d8100ccf0f0115ad3f4b017e29a8aa6a0fd8aa64da29d690788d5f320 + sourceBlobDigest: sha256:789c982cea01b8f1fcc225b7e267369c9d0cb72a8d575c5c5bfb59af017601f7 codeSamplesNamespace: open-router-python-code-samples - codeSamplesRevisionDigest: sha256:23931e6aa78496d22d77e9eded7e6e51a91dde4cbb70ed300c3a849e960fd2a9 + codeSamplesRevisionDigest: sha256:bdb03de66d2d5716ac563ef6fbb1b06f8f43830a50f05930f294062f8b33e652 workflow: workflowVersion: 1.0.0 speakeasyVersion: 1.787.0 diff --git a/RELEASES.md b/RELEASES.md index 9bfed391..1a7c5cfa 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -488,4 +488,14 @@ Based on: ### Generated - [python v0.11.38] . ### Releases -- [PyPI v0.11.38] https://pypi.org/project/openrouter/0.11.38 - . \ No newline at end of file +- [PyPI v0.11.38] https://pypi.org/project/openrouter/0.11.38 - . + +## 2026-07-16 19:40:14 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.787.0 (2.914.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v0.11.39] . +### Releases +- [PyPI v0.11.39] https://pypi.org/project/openrouter/0.11.39 - . \ No newline at end of file diff --git a/docs/components/additionaltoolsitemtool.mdx b/docs/components/additionaltoolsitemtool.mdx index 9dcea236..129b2fdf 100644 --- a/docs/components/additionaltoolsitemtool.mdx +++ b/docs/components/additionaltoolsitemtool.mdx @@ -4,7 +4,7 @@ title: "AdditionalToolsItemTool" ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `type` | *str* | :heavy_check_mark: | N/A | -| `__pydantic_extra__` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------- | -------------------- | -------------------- | -------------------- | +| `type` | *str* | :heavy_check_mark: | N/A | +| `__pydantic_extra__` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/additionaltoolsitemtoolfunction.mdx b/docs/components/additionaltoolsitemtoolfunction.mdx index d7871431..c4c0bf16 100644 --- a/docs/components/additionaltoolsitemtoolfunction.mdx +++ b/docs/components/additionaltoolsitemtoolfunction.mdx @@ -7,10 +7,10 @@ Function tool definition ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | -| `name` | *str* | :heavy_check_mark: | N/A | -| `parameters` | Dict[str, *Nullable[Any]*] | :heavy_check_mark: | N/A | -| `strict` | *OptionalNullable[bool]* | :heavy_minus_sign: | N/A | -| `type` | [components.AdditionalToolsItemTypeFunction](../components/additionaltoolsitemtypefunction.mdx) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `name` | *str* | :heavy_check_mark: | N/A | +| `parameters` | Dict[str, *Any*] | :heavy_check_mark: | N/A | +| `strict` | *OptionalNullable[bool]* | :heavy_minus_sign: | N/A | +| `type` | [components.AdditionalToolsItemToolType](../components/additionaltoolsitemtooltype.mdx) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/components/additionaltoolsitemtooltype.mdx b/docs/components/additionaltoolsitemtooltype.mdx new file mode 100644 index 00000000..ef321af2 --- /dev/null +++ b/docs/components/additionaltoolsitemtooltype.mdx @@ -0,0 +1,15 @@ +--- +title: "AdditionalToolsItemToolType" +--- + +## Example Usage + +```python +from openrouter.components import AdditionalToolsItemToolType +value: AdditionalToolsItemToolType = "function" +``` + + +## Values + +- `"function"` diff --git a/docs/components/additionaltoolsitemtypefunction.mdx b/docs/components/additionaltoolsitemtypefunction.mdx deleted file mode 100644 index 00ce08ab..00000000 --- a/docs/components/additionaltoolsitemtypefunction.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "AdditionalToolsItemTypeFunction" ---- - -## Example Usage - -```python -from openrouter.components import AdditionalToolsItemTypeFunction -value: AdditionalToolsItemTypeFunction = "function" -``` - - -## Values - -- `"function"` diff --git a/docs/components/advisornestedtool.mdx b/docs/components/advisornestedtool.mdx index ef547673..81964e19 100644 --- a/docs/components/advisornestedtool.mdx +++ b/docs/components/advisornestedtool.mdx @@ -9,6 +9,6 @@ A tool made available to the advisor sub-agent. Only OpenRouter server tools (e. | Field | Type | Required | Description | Example | | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| `parameters` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `parameters` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `type` | *str* | :heavy_check_mark: | N/A | | -| `__pydantic_extra__` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \{
"type": "openrouter:web_search"
} | \ No newline at end of file +| `__pydantic_extra__` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \{
"type": "openrouter:web_search"
} | \ No newline at end of file diff --git a/docs/components/agent.mdx b/docs/components/agent.mdx index d0300461..198da9e8 100644 --- a/docs/components/agent.mdx +++ b/docs/components/agent.mdx @@ -4,7 +4,7 @@ title: "Agent" ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `agent_name` | *str* | :heavy_check_mark: | N/A | -| `__pydantic_extra__` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------- | -------------------- | -------------------- | -------------------- | +| `agent_name` | *str* | :heavy_check_mark: | N/A | +| `__pydantic_extra__` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/agentmessageitem.mdx b/docs/components/agentmessageitem.mdx index f50b6f36..6c75e26d 100644 --- a/docs/components/agentmessageitem.mdx +++ b/docs/components/agentmessageitem.mdx @@ -15,4 +15,4 @@ A message routed between agents in a multi-agent session | `id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | | `recipient` | *str* | :heavy_check_mark: | N/A | | | `type` | [components.TypeAgentMessage](../components/typeagentmessage.mdx) | :heavy_check_mark: | N/A | | -| `__pydantic_extra__` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \{
"author": "/root/worker",
"content": [
\{
"text": "Task complete.",
"type": "input_text"
}
],
"recipient": "/root",
"type": "agent_message"
} | \ No newline at end of file +| `__pydantic_extra__` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \{
"author": "/root/worker",
"content": [
\{
"text": "Task complete.",
"type": "input_text"
}
],
"recipient": "/root",
"type": "agent_message"
} | \ No newline at end of file diff --git a/docs/components/allowedtoolsunion.mdx b/docs/components/allowedtoolsunion.mdx index 239bb482..4e6d37a0 100644 --- a/docs/components/allowedtoolsunion.mdx +++ b/docs/components/allowedtoolsunion.mdx @@ -16,9 +16,3 @@ value: List[str] = /* values here */ value: components.AllowedTools = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/architecture.mdx b/docs/components/architecture.mdx index 277a0da5..1c451e3f 100644 --- a/docs/components/architecture.mdx +++ b/docs/components/architecture.mdx @@ -13,4 +13,4 @@ Model architecture information | `instruct_type` | [Nullable[components.InstructType]](../components/instructtype.mdx) | :heavy_check_mark: | Instruction format type | chatml | | `modality` | *Nullable[str]* | :heavy_check_mark: | Primary modality of the model | text | | `output_modalities` | List[[components.OutputModality](../components/outputmodality.mdx)] | :heavy_check_mark: | Supported output modalities | | -| `tokenizer` | [Nullable[components.Tokenizer]](../components/tokenizer.mdx) | :heavy_check_mark: | N/A | GPT | \ No newline at end of file +| `tokenizer` | [Nullable[components.ModelGroup]](../components/modelgroup.mdx) | :heavy_check_mark: | N/A | GPT | \ No newline at end of file diff --git a/docs/components/badgatewayresponseerrordata.mdx b/docs/components/badgatewayresponseerrordata.mdx index df2de9f1..2a37f680 100644 --- a/docs/components/badgatewayresponseerrordata.mdx +++ b/docs/components/badgatewayresponseerrordata.mdx @@ -7,8 +7,8 @@ Error data for BadGatewayResponse ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `code` | *int* | :heavy_check_mark: | N/A | -| `message` | *str* | :heavy_check_mark: | N/A | -| `metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `code` | *int* | :heavy_check_mark: | N/A | +| `message` | *str* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/badrequestresponseerrordata.mdx b/docs/components/badrequestresponseerrordata.mdx index 3afce5cc..3fa8d950 100644 --- a/docs/components/badrequestresponseerrordata.mdx +++ b/docs/components/badrequestresponseerrordata.mdx @@ -7,8 +7,8 @@ Error data for BadRequestResponse ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `code` | *int* | :heavy_check_mark: | N/A | -| `message` | *str* | :heavy_check_mark: | N/A | -| `metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `code` | *int* | :heavy_check_mark: | N/A | +| `message` | *str* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/baseinputsphaseunion.mdx b/docs/components/baseinputsphaseunion.mdx index 5a057843..1f5e55e6 100644 --- a/docs/components/baseinputsphaseunion.mdx +++ b/docs/components/baseinputsphaseunion.mdx @@ -16,9 +16,3 @@ value: components.BaseInputsPhaseCommentary = /* values here */ value: components.BaseInputsPhaseFinalAnswer = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/baseinputsunion.mdx b/docs/components/baseinputsunion.mdx index e006bcc0..c9fc016d 100644 --- a/docs/components/baseinputsunion.mdx +++ b/docs/components/baseinputsunion.mdx @@ -16,9 +16,3 @@ value: str = /* values here */ value: List[components.BaseInputsUnion1] = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/byokproviderslug.mdx b/docs/components/byokproviderslug.mdx index b56fc996..4dbc4cec 100644 --- a/docs/components/byokproviderslug.mdx +++ b/docs/components/byokproviderslug.mdx @@ -101,6 +101,7 @@ This is an open enum. Unrecognized values will not fail type checks. - `"stepfun"` - `"streamlake"` - `"switchpoint"` +- `"tencent"` - `"tenstorrent"` - `"together"` - `"upstage"` diff --git a/docs/components/caching.mdx b/docs/components/caching.mdx deleted file mode 100644 index 0d7013f5..00000000 --- a/docs/components/caching.mdx +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: "Caching" ---- - -Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format. - - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | -| `ttl` | [Optional[components.AnthropicCacheControlTTL]](../components/anthropiccachecontrolttl.mdx) | :heavy_minus_sign: | N/A | 5m | -| `type` | [components.ToolTypeEphemeral](../components/tooltypeephemeral.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/components/chatassistantmessage.mdx b/docs/components/chatassistantmessage.mdx index e2b637c7..1d774a92 100644 --- a/docs/components/chatassistantmessage.mdx +++ b/docs/components/chatassistantmessage.mdx @@ -14,7 +14,7 @@ Assistant message for requests and responses | `images` | List[[components.ChatAssistantImages](../components/chatassistantimages.mdx)] | :heavy_minus_sign: | Generated images from image generation models | [
\{
"image_url": \{
"url": "data:image/png;base64,iVBORw0KGgo..."
}
}
] | | `name` | *Optional[str]* | :heavy_minus_sign: | Optional name for the assistant | | | `reasoning` | *OptionalNullable[str]* | :heavy_minus_sign: | Reasoning output | | -| `reasoning_details` | List[[components.ReasoningDetailUnion](../components/reasoningdetailunion.mdx)] | :heavy_minus_sign: | Reasoning details for extended thinking models | [
\{
"thinking": "Let me work through this step by step...",
"type": "thinking"
}
] | +| `reasoning_details` | List[[components.ReasoningDetailUnion](../components/reasoningdetailunion.mdx)] | :heavy_minus_sign: | Reasoning details for extended thinking models | [
\{
"text": "Let me work through this step by step...",
"type": "reasoning.text"
}
] | | `refusal` | *OptionalNullable[str]* | :heavy_minus_sign: | Refusal message if content was refused | | | `role` | [components.ChatAssistantMessageRole](../components/chatassistantmessagerole.mdx) | :heavy_check_mark: | N/A | | | `tool_calls` | List[[components.ChatToolCall](../components/chattoolcall.mdx)] | :heavy_minus_sign: | Tool calls made by the assistant | | \ No newline at end of file diff --git a/docs/components/chatassistantmessagecontent.mdx b/docs/components/chatassistantmessagecontent.mdx index c335554a..17e052dc 100644 --- a/docs/components/chatassistantmessagecontent.mdx +++ b/docs/components/chatassistantmessagecontent.mdx @@ -19,9 +19,3 @@ value: str = /* values here */ value: List[components.ChatContentItems] = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/chatfunctiontoolfunctionfunction.mdx b/docs/components/chatfunctiontoolfunctionfunction.mdx index e4a50d55..ba11d007 100644 --- a/docs/components/chatfunctiontoolfunctionfunction.mdx +++ b/docs/components/chatfunctiontoolfunctionfunction.mdx @@ -11,5 +11,5 @@ Function definition for tool calling | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | | `description` | *Optional[str]* | :heavy_minus_sign: | Function description for the model | Get the current weather for a location | | `name` | *str* | :heavy_check_mark: | Function name (a-z, A-Z, 0-9, underscores, dashes, max 64 chars) | get_weather | -| `parameters` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | Function parameters as JSON Schema object | \{
"properties": \{
"location": \{
"description": "City name",
"type": "string"
}
},
"required": [
"location"
],
"type": "object"
} | +| `parameters` | Dict[str, *Any*] | :heavy_minus_sign: | Function parameters as JSON Schema object | \{
"properties": \{
"location": \{
"description": "City name",
"type": "string"
}
},
"required": [
"location"
],
"type": "object"
} | | `strict` | *OptionalNullable[bool]* | :heavy_minus_sign: | Enable strict schema adherence | false | \ No newline at end of file diff --git a/docs/components/chatjsonschemaconfig.mdx b/docs/components/chatjsonschemaconfig.mdx index 9d355f0a..08887f52 100644 --- a/docs/components/chatjsonschemaconfig.mdx +++ b/docs/components/chatjsonschemaconfig.mdx @@ -11,5 +11,5 @@ JSON Schema configuration object | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | | `description` | *Optional[str]* | :heavy_minus_sign: | Schema description for the model | A mathematical response | | `name` | *str* | :heavy_check_mark: | Schema name (a-z, A-Z, 0-9, underscores, dashes, max 64 chars) | math_response | -| `schema_` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | JSON Schema object | \{
"properties": \{
"answer": \{
"type": "number"
}
},
"required": [
"answer"
],
"type": "object"
} | +| `schema_` | Dict[str, *Any*] | :heavy_minus_sign: | JSON Schema object | \{
"properties": \{
"answer": \{
"type": "number"
}
},
"required": [
"answer"
],
"type": "object"
} | | `strict` | *OptionalNullable[bool]* | :heavy_minus_sign: | Enable strict schema adherence | false | \ No newline at end of file diff --git a/docs/components/chatrequest.mdx b/docs/components/chatrequest.mdx index 73293a55..1422a77f 100644 --- a/docs/components/chatrequest.mdx +++ b/docs/components/chatrequest.mdx @@ -37,7 +37,7 @@ Chat completion request parameters | `seed` | *OptionalNullable[int]* | :heavy_minus_sign: | Random seed for deterministic outputs | 42 | | `service_tier` | [OptionalNullable[components.ChatRequestServiceTier]](../components/chatrequestservicetier.mdx) | :heavy_minus_sign: | The service tier to use for processing this request. | auto | | `session_id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier for grouping related requests (e.g., a conversation or agent workflow). When provided, OpenRouter uses it as the sticky routing key, routing all requests in the session to the same provider to maximize prompt cache hits. Also used for observability grouping. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters. | | -| `stop` | [OptionalNullable[components.Stop]](../components/stop.mdx) | :heavy_minus_sign: | Stop sequences (up to 4) | [
""
] | +| `stop` | [OptionalNullable[components.Stop]](../components/stop.mdx) | :heavy_minus_sign: | Stop sequences (up to 4) | [
"\n"
] | | `stop_server_tools_when` | List[[components.StopServerToolsWhenCondition](../components/stopservertoolswhencondition.mdx)] | :heavy_minus_sign: | Stop conditions for the server-tool agent loop. Any condition firing halts the loop (OR logic). When set, this overrides `max_tool_calls`. | [
\{
"step_count": 5,
"type": "step_count_is"
},
\{
"max_cost_in_dollars": 0.5,
"type": "max_cost"
}
] | | `stream` | *Optional[bool]* | :heavy_minus_sign: | Enable streaming response | false | | `stream_options` | [OptionalNullable[components.ChatStreamOptions]](../components/chatstreamoptions.mdx) | :heavy_minus_sign: | Streaming configuration options | \{
"include_usage": true
} | diff --git a/docs/components/chatstreamdelta.mdx b/docs/components/chatstreamdelta.mdx index ca45ea3c..3ac2bd92 100644 --- a/docs/components/chatstreamdelta.mdx +++ b/docs/components/chatstreamdelta.mdx @@ -12,7 +12,7 @@ Delta changes in streaming response | `audio` | [Optional[components.ChatAudioOutput]](../components/chataudiooutput.mdx) | :heavy_minus_sign: | N/A | \{
"data": "UklGRnoGAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgAZGF0YQoGAACBhYqFbF1f",
"expires_at": 1677652400,
"id": "audio_abc123",
"transcript": "Hello! How can I help you today?"
} | | `content` | *OptionalNullable[str]* | :heavy_minus_sign: | Message content delta | Hello | | `reasoning` | *OptionalNullable[str]* | :heavy_minus_sign: | Reasoning content delta | I need to | -| `reasoning_details` | List[[components.ReasoningDetailUnion](../components/reasoningdetailunion.mdx)] | :heavy_minus_sign: | Reasoning details for extended thinking models | [
\{
"text": "Let me think about this...",
"type": "text"
}
] | +| `reasoning_details` | List[[components.ReasoningDetailUnion](../components/reasoningdetailunion.mdx)] | :heavy_minus_sign: | Reasoning details for extended thinking models | [
\{
"text": "Let me think about this...",
"type": "reasoning.text"
}
] | | `refusal` | *OptionalNullable[str]* | :heavy_minus_sign: | Refusal message delta | null | | `role` | [Optional[components.ChatStreamDeltaRole]](../components/chatstreamdeltarole.mdx) | :heavy_minus_sign: | The role of the message author | assistant | | `tool_calls` | List[[components.ChatStreamToolCall](../components/chatstreamtoolcall.mdx)] | :heavy_minus_sign: | Tool calls delta | | \ No newline at end of file diff --git a/docs/components/cleartoolinputs.mdx b/docs/components/cleartoolinputs.mdx index d5682fcb..db3b60d9 100644 --- a/docs/components/cleartoolinputs.mdx +++ b/docs/components/cleartoolinputs.mdx @@ -16,9 +16,3 @@ value: bool = /* values here */ value: List[str] = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/compactionitem.mdx b/docs/components/compactionitem.mdx index 52161ac3..313c76b1 100644 --- a/docs/components/compactionitem.mdx +++ b/docs/components/compactionitem.mdx @@ -12,4 +12,4 @@ A context compaction marker with encrypted summary | `encrypted_content` | *str* | :heavy_check_mark: | N/A | | | `id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | | `type` | [components.CompactionItemType](../components/compactionitemtype.mdx) | :heavy_check_mark: | N/A | | -| `__pydantic_extra__` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \{
"encrypted_content": "enc_abc123...",
"type": "compaction"
} | \ No newline at end of file +| `__pydantic_extra__` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \{
"encrypted_content": "enc_abc123...",
"type": "compaction"
} | \ No newline at end of file diff --git a/docs/components/compoundfilter.mdx b/docs/components/compoundfilter.mdx index 6c3f524e..31f3a063 100644 --- a/docs/components/compoundfilter.mdx +++ b/docs/components/compoundfilter.mdx @@ -9,5 +9,5 @@ A compound filter that combines multiple comparison or compound filters | Field | Type | Required | Description | | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -| `filters` | List[Dict[str, *Nullable[Any]*]] | :heavy_check_mark: | N/A | +| `filters` | List[Dict[str, *Any*]] | :heavy_check_mark: | N/A | | `type` | [components.CompoundFilterType](../components/compoundfiltertype.mdx) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/components/conflictresponseerrordata.mdx b/docs/components/conflictresponseerrordata.mdx index a48176a7..6216c383 100644 --- a/docs/components/conflictresponseerrordata.mdx +++ b/docs/components/conflictresponseerrordata.mdx @@ -7,8 +7,8 @@ Error data for ConflictResponse ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `code` | *int* | :heavy_check_mark: | N/A | -| `message` | *str* | :heavy_check_mark: | N/A | -| `metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `code` | *int* | :heavy_check_mark: | N/A | +| `message` | *str* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/contentencryptedcontent.mdx b/docs/components/contentencryptedcontent.mdx index f6d3a51c..450638f0 100644 --- a/docs/components/contentencryptedcontent.mdx +++ b/docs/components/contentencryptedcontent.mdx @@ -8,4 +8,4 @@ title: "ContentEncryptedContent" | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | | `encrypted_content` | *str* | :heavy_check_mark: | N/A | | `type` | [components.TypeEncryptedContent](../components/typeencryptedcontent.mdx) | :heavy_check_mark: | N/A | -| `__pydantic_extra__` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| `__pydantic_extra__` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/contentservertooluse.mdx b/docs/components/contentservertooluse.mdx index 86c112ed..7f97379b 100644 --- a/docs/components/contentservertooluse.mdx +++ b/docs/components/contentservertooluse.mdx @@ -8,6 +8,6 @@ title: "ContentServerToolUse" | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `cache_control` | [Optional[components.AnthropicCacheControlDirective]](../components/anthropiccachecontroldirective.mdx) | :heavy_minus_sign: | Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format. | \{
"type": "ephemeral"
} | | `id` | *str* | :heavy_check_mark: | N/A | | -| `input` | *OptionalNullable[Any]* | :heavy_minus_sign: | N/A | | +| `input` | *Optional[Any]* | :heavy_minus_sign: | N/A | | | `name` | *str* | :heavy_check_mark: | N/A | | | `type` | [components.TypeServerToolUse](../components/typeservertooluse.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/components/contenttooluse.mdx b/docs/components/contenttooluse.mdx index 7149ea56..0f54e811 100644 --- a/docs/components/contenttooluse.mdx +++ b/docs/components/contenttooluse.mdx @@ -8,6 +8,6 @@ title: "ContentToolUse" | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `cache_control` | [Optional[components.AnthropicCacheControlDirective]](../components/anthropiccachecontroldirective.mdx) | :heavy_minus_sign: | Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format. | \{
"type": "ephemeral"
} | | `id` | *str* | :heavy_check_mark: | N/A | | -| `input` | *OptionalNullable[Any]* | :heavy_minus_sign: | N/A | | +| `input` | *Optional[Any]* | :heavy_minus_sign: | N/A | | | `name` | *str* | :heavy_check_mark: | N/A | | | `type` | [components.TypeToolUse](../components/typetooluse.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/components/contextcompactionitem.mdx b/docs/components/contextcompactionitem.mdx index 4410f499..369dd320 100644 --- a/docs/components/contextcompactionitem.mdx +++ b/docs/components/contextcompactionitem.mdx @@ -12,4 +12,4 @@ A context compaction marker with an optional encrypted summary | `encrypted_content` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | | `id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | | `type` | [components.ContextCompactionItemType](../components/contextcompactionitemtype.mdx) | :heavy_check_mark: | N/A | | -| `__pydantic_extra__` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \{
"encrypted_content": "enc_abc123...",
"type": "context_compaction"
} | \ No newline at end of file +| `__pydantic_extra__` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \{
"encrypted_content": "enc_abc123...",
"type": "context_compaction"
} | \ No newline at end of file diff --git a/docs/components/createobservabilitydestinationrequest.mdx b/docs/components/createobservabilitydestinationrequest.mdx index 065e043f..abe93cf0 100644 --- a/docs/components/createobservabilitydestinationrequest.mdx +++ b/docs/components/createobservabilitydestinationrequest.mdx @@ -7,7 +7,7 @@ title: "CreateObservabilityDestinationRequest" | Field | Type | Required | Description | Example | | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | `api_key_hashes` | List[*str*] | :heavy_minus_sign: | Optional allowlist of OpenRouter API key hashes whose traffic is forwarded. `null` or omitted means all keys. Must contain at least one hash if provided. | null | -| `config` | Dict[str, *Nullable[Any]*] | :heavy_check_mark: | Provider-specific configuration. The shape depends on `type` and is validated server-side. | \{
"baseUrl": "https://us.cloud.langfuse.com",
"publicKey": "pk-l...EfGh",
"secretKey": "sk-l...AbCd"
} | +| `config` | Dict[str, *Any*] | :heavy_check_mark: | Provider-specific configuration. The shape depends on `type` and is validated server-side. | \{
"baseUrl": "https://us.cloud.langfuse.com",
"publicKey": "pk-l...EfGh",
"secretKey": "sk-l...AbCd"
} | | `enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether this destination should be enabled immediately. | true | | `filter_rules` | [OptionalNullable[components.ObservabilityFilterRulesConfigNullable]](../components/observabilityfilterrulesconfignullable.mdx) | :heavy_minus_sign: | Optional structured filter rules controlling which events are forwarded. | null | | `name` | *str* | :heavy_check_mark: | Human-readable name for the destination. | Production Langfuse | diff --git a/docs/components/debug.mdx b/docs/components/debug.mdx index 5aff6df4..15d4e237 100644 --- a/docs/components/debug.mdx +++ b/docs/components/debug.mdx @@ -6,5 +6,5 @@ title: "Debug" | Field | Type | Required | Description | | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -| `echo_upstream_body` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | +| `echo_upstream_body` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | `timings` | [Optional[components.Timings]](../components/timings.mdx) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/easyinputmessagecontentunion2.mdx b/docs/components/easyinputmessagecontentunion2.mdx index 02c13eb5..73711340 100644 --- a/docs/components/easyinputmessagecontentunion2.mdx +++ b/docs/components/easyinputmessagecontentunion2.mdx @@ -16,9 +16,3 @@ value: List[components.EasyInputMessageContentUnion1] = /* values here */ value: str = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/easyinputmessagephaseunion.mdx b/docs/components/easyinputmessagephaseunion.mdx index 6f56b1ad..ac45ef0c 100644 --- a/docs/components/easyinputmessagephaseunion.mdx +++ b/docs/components/easyinputmessagephaseunion.mdx @@ -19,9 +19,3 @@ value: components.EasyInputMessagePhaseCommentary = /* values here */ value: components.EasyInputMessagePhaseFinalAnswer = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/edgenetworktimeoutresponseerrordata.mdx b/docs/components/edgenetworktimeoutresponseerrordata.mdx index 66b365f4..e0fedd8b 100644 --- a/docs/components/edgenetworktimeoutresponseerrordata.mdx +++ b/docs/components/edgenetworktimeoutresponseerrordata.mdx @@ -7,8 +7,8 @@ Error data for EdgeNetworkTimeoutResponse ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `code` | *int* | :heavy_check_mark: | N/A | -| `message` | *str* | :heavy_check_mark: | N/A | -| `metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `code` | *int* | :heavy_check_mark: | N/A | +| `message` | *str* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/filtersunion.mdx b/docs/components/filtersunion.mdx index 263dda89..89d19204 100644 --- a/docs/components/filtersunion.mdx +++ b/docs/components/filtersunion.mdx @@ -16,9 +16,3 @@ value: components.Filters = /* values here */ value: components.CompoundFilter = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/forbiddenresponseerrordata.mdx b/docs/components/forbiddenresponseerrordata.mdx index 6876df07..cdc5cd4c 100644 --- a/docs/components/forbiddenresponseerrordata.mdx +++ b/docs/components/forbiddenresponseerrordata.mdx @@ -7,8 +7,8 @@ Error data for ForbiddenResponse ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `code` | *int* | :heavy_check_mark: | N/A | -| `message` | *str* | :heavy_check_mark: | N/A | -| `metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `code` | *int* | :heavy_check_mark: | N/A | +| `message` | *str* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/formatjsonschemaconfig.mdx b/docs/components/formatjsonschemaconfig.mdx index 12224f31..0ddb8ed4 100644 --- a/docs/components/formatjsonschemaconfig.mdx +++ b/docs/components/formatjsonschemaconfig.mdx @@ -11,6 +11,6 @@ JSON schema constrained response format | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | | `description` | *Optional[str]* | :heavy_minus_sign: | N/A | | `name` | *str* | :heavy_check_mark: | N/A | -| `schema_` | Dict[str, *Nullable[Any]*] | :heavy_check_mark: | N/A | +| `schema_` | Dict[str, *Any*] | :heavy_check_mark: | N/A | | `strict` | *OptionalNullable[bool]* | :heavy_minus_sign: | N/A | | `type` | [components.FormatJSONSchemaConfigType](../components/formatjsonschemaconfigtype.mdx) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/components/functioncalloutputitem.mdx b/docs/components/functioncalloutputitem.mdx index f48aaeab..f0bca51c 100644 --- a/docs/components/functioncalloutputitem.mdx +++ b/docs/components/functioncalloutputitem.mdx @@ -12,5 +12,5 @@ The output from a function call execution | `call_id` | *str* | :heavy_check_mark: | N/A | | | `id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | | `output` | [components.FunctionCallOutputItemOutputUnion2](../components/functioncalloutputitemoutputunion2.mdx) | :heavy_check_mark: | N/A | | -| `status` | [OptionalNullable[components.FunctionCallOutputItemStatus]](../components/functioncalloutputitemstatus.mdx) | :heavy_minus_sign: | N/A | completed | +| `status` | [OptionalNullable[components.ToolCallStatus]](../components/toolcallstatus.mdx) | :heavy_minus_sign: | N/A | completed | | `type` | [components.FunctionCallOutputItemTypeFunctionCallOutput](../components/functioncalloutputitemtypefunctioncalloutput.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/components/functioncalloutputitemstatus.mdx b/docs/components/functioncalloutputitemstatus.mdx deleted file mode 100644 index 870e40ce..00000000 --- a/docs/components/functioncalloutputitemstatus.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "FunctionCallOutputItemStatus" ---- - -## Example Usage - -```python -from openrouter.components import FunctionCallOutputItemStatus - -# Open enum: unrecognized values are captured as UnrecognizedStr -value: FunctionCallOutputItemStatus = "in_progress" -``` - - -## Values - -This is an open enum. Unrecognized values will not fail type checks. - -- `"in_progress"` -- `"completed"` -- `"incomplete"` diff --git a/docs/components/fusionplugintool.mdx b/docs/components/fusionplugintool.mdx index 3c29bc4b..967c0e2a 100644 --- a/docs/components/fusionplugintool.mdx +++ b/docs/components/fusionplugintool.mdx @@ -6,5 +6,5 @@ title: "FusionPluginTool" | Field | Type | Required | Description | | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | -| `parameters` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | Optional configuration forwarded as the tool's `parameters` object. | +| `parameters` | Dict[str, [Nullable[components.Parameters3]](../components/parameters3.mdx)] | :heavy_minus_sign: | Optional configuration forwarded as the tool's `parameters` object. | | `type` | *str* | :heavy_check_mark: | Server tool type identifier (e.g. "openrouter:web_search", "openrouter:web_fetch"). | \ No newline at end of file diff --git a/docs/components/fusionservertoolconfigtool.mdx b/docs/components/fusionservertoolconfigtool.mdx index ec79aaa4..486dbbd1 100644 --- a/docs/components/fusionservertoolconfigtool.mdx +++ b/docs/components/fusionservertoolconfigtool.mdx @@ -6,5 +6,5 @@ title: "FusionServerToolConfigTool" | Field | Type | Required | Description | | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | -| `parameters` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | Optional configuration forwarded as the tool's `parameters` object. | +| `parameters` | Dict[str, *Any*] | :heavy_minus_sign: | Optional configuration forwarded as the tool's `parameters` object. | | `type` | *str* | :heavy_check_mark: | Server tool type identifier (e.g. "openrouter:web_search", "openrouter:web_fetch"). | \ No newline at end of file diff --git a/docs/components/imageconfig.mdx b/docs/components/imageconfig.mdx index c838dbe6..a470ef90 100644 --- a/docs/components/imageconfig.mdx +++ b/docs/components/imageconfig.mdx @@ -16,9 +16,9 @@ value: str = /* values here */ value: float = /* values here */ ``` -### `List[Nullable[Any]]` +### `List[Any]` ```python -value: List[Nullable[Any]] = /* values here */ +value: List[Any] = /* values here */ ``` diff --git a/docs/components/imagegenerationproviderpreferencesoptions.mdx b/docs/components/imagegenerationproviderpreferencesoptions.mdx index 89318cba..a5a0f472 100644 --- a/docs/components/imagegenerationproviderpreferencesoptions.mdx +++ b/docs/components/imagegenerationproviderpreferencesoptions.mdx @@ -7,128 +7,129 @@ Provider-specific options keyed by provider slug. Only options for the matched p ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `oneai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `ai21` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `aion_labs` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `akashml` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `alibaba` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `amazon_bedrock` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `amazon_nova` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `ambient` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `anthropic` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `anyscale` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `arcee_ai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `atlas_cloud` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `atoma` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `avian` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `azure` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `baidu` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `baseten` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `black_forest_labs` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `byteplus` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `centml` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `cerebras` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `chutes` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `cirrascale` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `clarifai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `cloudflare` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `cohere` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `crofai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `crucible` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `crusoe` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `darkbloom` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `decart` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `deepgram` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `deepinfra` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `deepseek` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `dekallm` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `digitalocean` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `enfer` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `fake_provider` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `featherless` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `fireworks` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `friendli` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `gmicloud` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `google_ai_studio` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `google_vertex` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `gopomelo` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `groq` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `heygen` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `huggingface` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `hyperbolic` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `hyperbolic_quantized` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inception` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inceptron` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inferact_vllm` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inference_net` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `infermatic` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inflection` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inocloud` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `io_net` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `ionstream` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `klusterai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `krea` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `lambda_` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `lepton` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `liquid` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `lynn` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `lynn_private` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `mancer` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `mancer_old` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `mara` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `meta` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `minimax` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `mistral` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `modal` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `modelrun` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `modular` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `moonshotai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `morph` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `ncompass` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `nebius` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `nex_agi` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `nextbit` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `nineteen` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `novita` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `nvidia` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `octoai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `open_inference` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `openai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `parasail` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `perceptron` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `perplexity` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `phala` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `poolside` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `quiver` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `recraft` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `recursal` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `reflection` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `reka` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `relace` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `replicate` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sail_research` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sakana` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sambanova` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sambanova_cloaked` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `seed` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sf_compute` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `siliconflow` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sourceful` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `stealth` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `stepfun` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `streamlake` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `switchpoint` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `targon` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `tenstorrent` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `together` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `together_lite` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `ubicloud` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `upstage` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `venice` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `wafer` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `wandb` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `xai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `xiaomi` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `z_ai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------- | ---------------------- | ---------------------- | ---------------------- | +| `oneai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `ai21` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `aion_labs` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `akashml` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `alibaba` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `amazon_bedrock` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `amazon_nova` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `ambient` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `anthropic` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `anyscale` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `arcee_ai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `atlas_cloud` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `atoma` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `avian` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `azure` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `baidu` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `baseten` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `black_forest_labs` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `byteplus` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `centml` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `cerebras` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `chutes` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `cirrascale` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `clarifai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `cloudflare` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `cohere` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `crofai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `crucible` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `crusoe` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `darkbloom` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `decart` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `deepgram` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `deepinfra` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `deepseek` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `dekallm` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `digitalocean` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `enfer` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `fake_provider` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `featherless` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `fireworks` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `friendli` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `gmicloud` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `google_ai_studio` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `google_vertex` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `gopomelo` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `groq` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `heygen` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `huggingface` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `hyperbolic` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `hyperbolic_quantized` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inception` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inceptron` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inferact_vllm` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inference_net` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `infermatic` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inflection` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inocloud` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `io_net` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `ionstream` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `klusterai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `krea` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `lambda_` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `lepton` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `liquid` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `lynn` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `lynn_private` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `mancer` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `mancer_old` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `mara` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `meta` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `minimax` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `mistral` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `modal` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `modelrun` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `modular` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `moonshotai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `morph` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `ncompass` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `nebius` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `nex_agi` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `nextbit` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `nineteen` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `novita` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `nvidia` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `octoai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `open_inference` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `openai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `parasail` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `perceptron` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `perplexity` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `phala` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `poolside` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `quiver` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `recraft` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `recursal` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `reflection` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `reka` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `relace` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `replicate` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sail_research` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sakana` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sambanova` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sambanova_cloaked` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `seed` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sf_compute` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `siliconflow` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sourceful` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `stealth` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `stepfun` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `streamlake` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `switchpoint` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `targon` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `tencent` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `tenstorrent` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `together` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `together_lite` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `ubicloud` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `upstage` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `venice` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `wafer` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `wandb` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `xai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `xiaomi` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `z_ai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/imagegenerationproviderpreferencessort.mdx b/docs/components/imagegenerationproviderpreferencessort.mdx index 7696bf5f..bccd1589 100644 --- a/docs/components/imagegenerationproviderpreferencessort.mdx +++ b/docs/components/imagegenerationproviderpreferencessort.mdx @@ -19,9 +19,3 @@ value: components.ProviderSort = /* values here */ value: components.ProviderSortConfig = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/imagegenerationservertoolconfigunion.mdx b/docs/components/imagegenerationservertoolconfigunion.mdx index a3b6a156..42cf7a75 100644 --- a/docs/components/imagegenerationservertoolconfigunion.mdx +++ b/docs/components/imagegenerationservertoolconfigunion.mdx @@ -16,9 +16,9 @@ value: str = /* values here */ value: float = /* values here */ ``` -### `List[Nullable[Any]]` +### `List[Any]` ```python -value: List[Nullable[Any]] = /* values here */ +value: List[Any] = /* values here */ ``` diff --git a/docs/components/input2.mdx b/docs/components/input2.mdx index 5dc5ade7..8ff9ce18 100644 --- a/docs/components/input2.mdx +++ b/docs/components/input2.mdx @@ -6,4 +6,4 @@ title: "Input2" | Field | Type | Required | Description | Example | | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | -| `messages` | List[*Nullable[Any]*] | :heavy_check_mark: | N/A | [
\{
"content": "What is the meaning of life?",
"role": "user"
}
] | \ No newline at end of file +| `messages` | List[*Any*] | :heavy_check_mark: | N/A | [
\{
"content": "What is the meaning of life?",
"role": "user"
}
] | \ No newline at end of file diff --git a/docs/components/inputschema.mdx b/docs/components/inputschema.mdx index 0adafb65..c86a4f23 100644 --- a/docs/components/inputschema.mdx +++ b/docs/components/inputschema.mdx @@ -4,9 +4,9 @@ title: "InputSchema" ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `properties` | *OptionalNullable[Any]* | :heavy_minus_sign: | N/A | -| `required` | List[*str*] | :heavy_minus_sign: | N/A | -| `type` | *Optional[str]* | :heavy_minus_sign: | N/A | -| `__pydantic_extra__` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------- | -------------------- | -------------------- | -------------------- | +| `properties` | *Optional[Any]* | :heavy_minus_sign: | N/A | +| `required` | List[*str*] | :heavy_minus_sign: | N/A | +| `type` | *Optional[str]* | :heavy_minus_sign: | N/A | +| `__pydantic_extra__` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/inputscontent2.mdx b/docs/components/inputscontent2.mdx index 2cfb9792..ec384a2c 100644 --- a/docs/components/inputscontent2.mdx +++ b/docs/components/inputscontent2.mdx @@ -16,9 +16,3 @@ value: List[components.InputsContent1] = /* values here */ value: str = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/inputsphaseunion.mdx b/docs/components/inputsphaseunion.mdx index cad06700..ed5a1eb6 100644 --- a/docs/components/inputsphaseunion.mdx +++ b/docs/components/inputsphaseunion.mdx @@ -19,9 +19,3 @@ value: components.InputsPhaseCommentary = /* values here */ value: components.InputsPhaseFinalAnswer = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/internalserverresponseerrordata.mdx b/docs/components/internalserverresponseerrordata.mdx index 4db529f2..8ddf14e8 100644 --- a/docs/components/internalserverresponseerrordata.mdx +++ b/docs/components/internalserverresponseerrordata.mdx @@ -7,8 +7,8 @@ Error data for InternalServerResponse ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `code` | *int* | :heavy_check_mark: | N/A | -| `message` | *str* | :heavy_check_mark: | N/A | -| `metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `code` | *int* | :heavy_check_mark: | N/A | +| `message` | *str* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/listendpointsresponse.mdx b/docs/components/listendpointsresponse.mdx index 2687145f..2df1189d 100644 --- a/docs/components/listendpointsresponse.mdx +++ b/docs/components/listendpointsresponse.mdx @@ -7,11 +7,11 @@ List of available endpoints for a model ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | -| `architecture` | [components.Architecture](../components/architecture.mdx) | :heavy_check_mark: | N/A | \{
"instruct_type": "chatml",
"modality": "text",
"tokenizer": "GPT"
} | -| `created` | *int* | :heavy_check_mark: | Unix timestamp of when the model was created | 1692901234 | -| `description` | *str* | :heavy_check_mark: | Description of the model | GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy. | -| `endpoints` | List[[components.PublicEndpoint](../components/publicendpoint.mdx)] | :heavy_check_mark: | List of available endpoints for this model | | -| `id` | *str* | :heavy_check_mark: | Unique identifier for the model | openai/gpt-4 | -| `name` | *str* | :heavy_check_mark: | Display name of the model | GPT-4 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| `architecture` | [components.Architecture](../components/architecture.mdx) | :heavy_check_mark: | N/A | \{
"input_modalities": [
"text"
],
"instruct_type": "chatml",
"modality": "text-\u003etext",
"output_modalities": [
"text"
],
"tokenizer": "GPT"
} | +| `created` | *int* | :heavy_check_mark: | Unix timestamp of when the model was created | 1692901234 | +| `description` | *str* | :heavy_check_mark: | Description of the model | GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy. | +| `endpoints` | List[[components.PublicEndpoint](../components/publicendpoint.mdx)] | :heavy_check_mark: | List of available endpoints for this model | | +| `id` | *str* | :heavy_check_mark: | Unique identifier for the model | openai/gpt-4 | +| `name` | *str* | :heavy_check_mark: | Display name of the model | GPT-4 | \ No newline at end of file diff --git a/docs/components/localshellcalloutputitem.mdx b/docs/components/localshellcalloutputitem.mdx index 99fa6e2a..eff6d349 100644 --- a/docs/components/localshellcalloutputitem.mdx +++ b/docs/components/localshellcalloutputitem.mdx @@ -7,9 +7,9 @@ Output from a local shell command execution ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -| `id` | *str* | :heavy_check_mark: | N/A | | -| `output` | *str* | :heavy_check_mark: | N/A | | -| `status` | [OptionalNullable[components.LocalShellCallOutputItemStatus]](../components/localshellcalloutputitemstatus.mdx) | :heavy_minus_sign: | N/A | completed | -| `type` | [components.LocalShellCallOutputItemType](../components/localshellcalloutputitemtype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `id` | *str* | :heavy_check_mark: | N/A | | +| `output` | *str* | :heavy_check_mark: | N/A | | +| `status` | [OptionalNullable[components.ToolCallStatus]](../components/toolcallstatus.mdx) | :heavy_minus_sign: | N/A | completed | +| `type` | [components.LocalShellCallOutputItemType](../components/localshellcalloutputitemtype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/components/localshellcalloutputitemstatus.mdx b/docs/components/localshellcalloutputitemstatus.mdx deleted file mode 100644 index 35fda260..00000000 --- a/docs/components/localshellcalloutputitemstatus.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "LocalShellCallOutputItemStatus" ---- - -## Example Usage - -```python -from openrouter.components import LocalShellCallOutputItemStatus - -# Open enum: unrecognized values are captured as UnrecognizedStr -value: LocalShellCallOutputItemStatus = "in_progress" -``` - - -## Values - -This is an open enum. Unrecognized values will not fail type checks. - -- `"in_progress"` -- `"completed"` -- `"incomplete"` diff --git a/docs/components/mcplisttoolsitemtool.mdx b/docs/components/mcplisttoolsitemtool.mdx index d73292f5..b36fb7dc 100644 --- a/docs/components/mcplisttoolsitemtool.mdx +++ b/docs/components/mcplisttoolsitemtool.mdx @@ -4,9 +4,9 @@ title: "McpListToolsItemTool" ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `annotations` | *OptionalNullable[Any]* | :heavy_minus_sign: | N/A | -| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | -| `input_schema` | Dict[str, *Nullable[Any]*] | :heavy_check_mark: | N/A | -| `name` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------- | ----------------------- | ----------------------- | ----------------------- | +| `annotations` | *Optional[Any]* | :heavy_minus_sign: | N/A | +| `description` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `input_schema` | Dict[str, *Any*] | :heavy_check_mark: | N/A | +| `name` | *str* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/components/messagesadvisortoolresultblock.mdx b/docs/components/messagesadvisortoolresultblock.mdx index ae6b8d91..8ae2160d 100644 --- a/docs/components/messagesadvisortoolresultblock.mdx +++ b/docs/components/messagesadvisortoolresultblock.mdx @@ -9,6 +9,6 @@ Advisor tool result from a prior assistant turn, replayed back to the model on t | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| `content` | Dict[str, *Nullable[Any]*] | :heavy_check_mark: | N/A | +| `content` | Dict[str, *Any*] | :heavy_check_mark: | N/A | | `tool_use_id` | *str* | :heavy_check_mark: | N/A | | `type` | [components.MessagesAdvisorToolResultBlockType](../components/messagesadvisortoolresultblocktype.mdx) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/components/messagesfallbackparam.mdx b/docs/components/messagesfallbackparam.mdx index acb60842..a6a32a1a 100644 --- a/docs/components/messagesfallbackparam.mdx +++ b/docs/components/messagesfallbackparam.mdx @@ -10,4 +10,4 @@ Fallback model to try when the primary model fails or refuses. Only the `model` | Field | Type | Required | Description | Example | | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | | `model` | *str* | :heavy_check_mark: | N/A | | -| `__pydantic_extra__` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \{
"model": "claude-opus-4-8"
} | \ No newline at end of file +| `__pydantic_extra__` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \{
"model": "claude-opus-4-8"
} | \ No newline at end of file diff --git a/docs/components/messagesoutputconfigformat.mdx b/docs/components/messagesoutputconfigformat.mdx index fdec2e47..cf56b303 100644 --- a/docs/components/messagesoutputconfigformat.mdx +++ b/docs/components/messagesoutputconfigformat.mdx @@ -9,5 +9,5 @@ A schema to specify Claude's output format in responses. See [structured outputs | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| `schema_` | Dict[str, *Nullable[Any]*] | :heavy_check_mark: | N/A | +| `schema_` | Dict[str, *Any*] | :heavy_check_mark: | N/A | | `type` | [components.MessagesOutputConfigTypeJSONSchema](../components/messagesoutputconfigtypejsonschema.mdx) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/components/messagesrequesttool.mdx b/docs/components/messagesrequesttool.mdx index e6fae822..d432bb08 100644 --- a/docs/components/messagesrequesttool.mdx +++ b/docs/components/messagesrequesttool.mdx @@ -4,7 +4,7 @@ title: "MessagesRequestTool" ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `type` | *str* | :heavy_check_mark: | N/A | -| `__pydantic_extra__` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------- | -------------------- | -------------------- | -------------------- | +| `type` | *str* | :heavy_check_mark: | N/A | +| `__pydantic_extra__` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/namespacefunctiontool.mdx b/docs/components/namespacefunctiontool.mdx index 4128c909..d03d8cb5 100644 --- a/docs/components/namespacefunctiontool.mdx +++ b/docs/components/namespacefunctiontool.mdx @@ -13,7 +13,7 @@ A function tool grouped inside a namespace tool | `defer_loading` | *Optional[bool]* | :heavy_minus_sign: | N/A | | `description` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `name` | *str* | :heavy_check_mark: | N/A | -| `output_schema` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `parameters` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | +| `output_schema` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `parameters` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | `strict` | *OptionalNullable[bool]* | :heavy_minus_sign: | N/A | | `type` | [components.NamespaceFunctionToolType](../components/namespacefunctiontooltype.mdx) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/components/notfoundresponseerrordata.mdx b/docs/components/notfoundresponseerrordata.mdx index 1fed7371..e0bc365c 100644 --- a/docs/components/notfoundresponseerrordata.mdx +++ b/docs/components/notfoundresponseerrordata.mdx @@ -7,8 +7,8 @@ Error data for NotFoundResponse ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `code` | *int* | :heavy_check_mark: | N/A | -| `message` | *str* | :heavy_check_mark: | N/A | -| `metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `code` | *int* | :heavy_check_mark: | N/A | +| `message` | *str* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/openairesponsefunctiontoolcalloutput.mdx b/docs/components/openairesponsefunctiontoolcalloutput.mdx index 0ccfaaf0..7999eeee 100644 --- a/docs/components/openairesponsefunctiontoolcalloutput.mdx +++ b/docs/components/openairesponsefunctiontoolcalloutput.mdx @@ -4,10 +4,10 @@ title: "OpenAIResponseFunctionToolCallOutput" ## Fields -| Field | Type | Required | Description | Example | -| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -| `call_id` | *str* | :heavy_check_mark: | N/A | | -| `id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | -| `output` | [components.OpenAIResponseFunctionToolCallOutputOutput2](../components/openairesponsefunctiontoolcalloutputoutput2.mdx) | :heavy_check_mark: | N/A | | -| `status` | [OptionalNullable[components.OpenAIResponseFunctionToolCallOutputStatus]](../components/openairesponsefunctiontoolcalloutputstatus.mdx) | :heavy_minus_sign: | N/A | completed | -| `type` | [components.OpenAIResponseFunctionToolCallOutputType](../components/openairesponsefunctiontoolcalloutputtype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `call_id` | *str* | :heavy_check_mark: | N/A | | +| `id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | +| `output` | [components.OpenAIResponseFunctionToolCallOutputOutput2](../components/openairesponsefunctiontoolcalloutputoutput2.mdx) | :heavy_check_mark: | N/A | | +| `status` | [OptionalNullable[components.ToolCallStatus]](../components/toolcallstatus.mdx) | :heavy_minus_sign: | N/A | completed | +| `type` | [components.OpenAIResponseFunctionToolCallOutputType](../components/openairesponsefunctiontoolcalloutputtype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/components/openairesponsefunctiontoolcalloutputstatus.mdx b/docs/components/openairesponsefunctiontoolcalloutputstatus.mdx deleted file mode 100644 index d5e7af39..00000000 --- a/docs/components/openairesponsefunctiontoolcalloutputstatus.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "OpenAIResponseFunctionToolCallOutputStatus" ---- - -## Example Usage - -```python -from openrouter.components import OpenAIResponseFunctionToolCallOutputStatus - -# Open enum: unrecognized values are captured as UnrecognizedStr -value: OpenAIResponseFunctionToolCallOutputStatus = "in_progress" -``` - - -## Values - -This is an open enum. Unrecognized values will not fail type checks. - -- `"in_progress"` -- `"completed"` -- `"incomplete"` diff --git a/docs/components/openresponsescreatedevent.mdx b/docs/components/openresponsescreatedevent.mdx index a0433fe2..f1b2f471 100644 --- a/docs/components/openresponsescreatedevent.mdx +++ b/docs/components/openresponsescreatedevent.mdx @@ -7,8 +7,8 @@ Event emitted when a response is created ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `response` | [components.OpenResponsesResult](../components/openresponsesresult.mdx) | :heavy_check_mark: | Complete non-streaming response from the Responses API | \{
"created_at": 1704067200,
"error": null,
"id": "resp-abc123",
"incomplete_details": null,
"instructions": null,
"max_output_tokens": null,
"metadata": null,
"model": "gpt-4",
"object": "response",
"output": [
\{
"content": [
\{
"annotations": [],
"text": "Hello! How can I help you today?",
"type": "output_text"
}
],
"id": "msg-abc123",
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": true,
"status": "completed",
"temperature": null,
"tool_choice": "auto",
"tools": [],
"top_p": null,
"usage": \{
"input_tokens": 10,
"input_tokens_details": \{
"cached_tokens": 0
},
"output_tokens": 25,
"output_tokens_details": \{
"reasoning_tokens": 0
},
"total_tokens": 35
}
} | -| `sequence_number` | *int* | :heavy_check_mark: | N/A | | -| `type` | [components.OpenResponsesCreatedEventType](../components/openresponsescreatedeventtype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `response` | [components.OpenResponsesResult](../components/openresponsesresult.mdx) | :heavy_check_mark: | Complete non-streaming response from the Responses API | \{
"completed_at": 1704067210,
"created_at": 1704067200,
"error": null,
"frequency_penalty": null,
"id": "resp-abc123",
"incomplete_details": null,
"instructions": null,
"max_output_tokens": null,
"metadata": null,
"model": "gpt-4",
"object": "response",
"output": [
\{
"content": [
\{
"annotations": [],
"text": "Hello! How can I help you today?",
"type": "output_text"
}
],
"id": "msg-abc123",
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": true,
"presence_penalty": null,
"status": "completed",
"temperature": null,
"tool_choice": "auto",
"tools": [],
"top_p": null,
"usage": \{
"input_tokens": 10,
"input_tokens_details": \{
"cached_tokens": 0
},
"output_tokens": 25,
"output_tokens_details": \{
"reasoning_tokens": 0
},
"total_tokens": 35
}
} | +| `sequence_number` | *int* | :heavy_check_mark: | N/A | | +| `type` | [components.OpenResponsesCreatedEventType](../components/openresponsescreatedeventtype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/components/openresponsesinprogressevent.mdx b/docs/components/openresponsesinprogressevent.mdx index a2e79d40..b9c8edc5 100644 --- a/docs/components/openresponsesinprogressevent.mdx +++ b/docs/components/openresponsesinprogressevent.mdx @@ -7,8 +7,8 @@ Event emitted when a response is in progress ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `response` | [components.OpenResponsesResult](../components/openresponsesresult.mdx) | :heavy_check_mark: | Complete non-streaming response from the Responses API | \{
"created_at": 1704067200,
"error": null,
"id": "resp-abc123",
"incomplete_details": null,
"instructions": null,
"max_output_tokens": null,
"metadata": null,
"model": "gpt-4",
"object": "response",
"output": [
\{
"content": [
\{
"annotations": [],
"text": "Hello! How can I help you today?",
"type": "output_text"
}
],
"id": "msg-abc123",
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": true,
"status": "completed",
"temperature": null,
"tool_choice": "auto",
"tools": [],
"top_p": null,
"usage": \{
"input_tokens": 10,
"input_tokens_details": \{
"cached_tokens": 0
},
"output_tokens": 25,
"output_tokens_details": \{
"reasoning_tokens": 0
},
"total_tokens": 35
}
} | -| `sequence_number` | *int* | :heavy_check_mark: | N/A | | -| `type` | [components.OpenResponsesInProgressEventType](../components/openresponsesinprogresseventtype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `response` | [components.OpenResponsesResult](../components/openresponsesresult.mdx) | :heavy_check_mark: | Complete non-streaming response from the Responses API | \{
"completed_at": 1704067210,
"created_at": 1704067200,
"error": null,
"frequency_penalty": null,
"id": "resp-abc123",
"incomplete_details": null,
"instructions": null,
"max_output_tokens": null,
"metadata": null,
"model": "gpt-4",
"object": "response",
"output": [
\{
"content": [
\{
"annotations": [],
"text": "Hello! How can I help you today?",
"type": "output_text"
}
],
"id": "msg-abc123",
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": true,
"presence_penalty": null,
"status": "completed",
"temperature": null,
"tool_choice": "auto",
"tools": [],
"top_p": null,
"usage": \{
"input_tokens": 10,
"input_tokens_details": \{
"cached_tokens": 0
},
"output_tokens": 25,
"output_tokens_details": \{
"reasoning_tokens": 0
},
"total_tokens": 35
}
} | +| `sequence_number` | *int* | :heavy_check_mark: | N/A | | +| `type` | [components.OpenResponsesInProgressEventType](../components/openresponsesinprogresseventtype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/components/openresponsesresulttoolfunction.mdx b/docs/components/openresponsesresulttoolfunction.mdx index f0fbd6bc..9ccb4ab1 100644 --- a/docs/components/openresponsesresulttoolfunction.mdx +++ b/docs/components/openresponsesresulttoolfunction.mdx @@ -11,6 +11,6 @@ Function tool definition | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | | `description` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `name` | *str* | :heavy_check_mark: | N/A | -| `parameters` | Dict[str, *Nullable[Any]*] | :heavy_check_mark: | N/A | +| `parameters` | Dict[str, *Any*] | :heavy_check_mark: | N/A | | `strict` | *OptionalNullable[bool]* | :heavy_minus_sign: | N/A | | `type` | [components.OpenResponsesResultType](../components/openresponsesresulttype.mdx) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/components/outputcomputercallitem.mdx b/docs/components/outputcomputercallitem.mdx index 7d0669ae..f765c59f 100644 --- a/docs/components/outputcomputercallitem.mdx +++ b/docs/components/outputcomputercallitem.mdx @@ -6,7 +6,7 @@ title: "OutputComputerCallItem" | Field | Type | Required | Description | | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `action` | *OptionalNullable[Any]* | :heavy_minus_sign: | N/A | +| `action` | *Optional[Any]* | :heavy_minus_sign: | N/A | | `call_id` | *str* | :heavy_check_mark: | N/A | | `id` | *Optional[str]* | :heavy_minus_sign: | N/A | | `pending_safety_checks` | List[[components.PendingSafetyCheck](../components/pendingsafetycheck.mdx)] | :heavy_check_mark: | N/A | diff --git a/docs/components/outputmemoryservertoolitem.mdx b/docs/components/outputmemoryservertoolitem.mdx index f6fdc65d..57345928 100644 --- a/docs/components/outputmemoryservertoolitem.mdx +++ b/docs/components/outputmemoryservertoolitem.mdx @@ -14,4 +14,4 @@ An openrouter:memory server tool output item | `key` | *Optional[str]* | :heavy_minus_sign: | N/A | | | `status` | [components.ToolCallStatus](../components/toolcallstatus.mdx) | :heavy_check_mark: | N/A | completed | | `type` | [components.OutputMemoryServerToolItemType](../components/outputmemoryservertoolitemtype.mdx) | :heavy_check_mark: | N/A | | -| `value` | *OptionalNullable[Any]* | :heavy_minus_sign: | N/A | | \ No newline at end of file +| `value` | *Optional[Any]* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/components/outputmessageitemphaseunion.mdx b/docs/components/outputmessageitemphaseunion.mdx index 39b73fbe..01c36928 100644 --- a/docs/components/outputmessageitemphaseunion.mdx +++ b/docs/components/outputmessageitemphaseunion.mdx @@ -19,9 +19,3 @@ value: components.OutputMessageItemPhaseCommentary = /* values here */ value: components.OutputMessageItemPhaseFinalAnswer = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/outputmessagephaseunion.mdx b/docs/components/outputmessagephaseunion.mdx index 67491fda..263d82a4 100644 --- a/docs/components/outputmessagephaseunion.mdx +++ b/docs/components/outputmessagephaseunion.mdx @@ -19,9 +19,3 @@ value: components.OutputMessagePhaseCommentary = /* values here */ value: components.OutputMessagePhaseFinalAnswer = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/parameters1.mdx b/docs/components/parameters1.mdx new file mode 100644 index 00000000..fa7228a2 --- /dev/null +++ b/docs/components/parameters1.mdx @@ -0,0 +1,24 @@ +--- +title: "Parameters1" +--- + +## Supported Types + +### `str` + +```python +value: str = /* values here */ +``` + +### `float` + +```python +value: float = /* values here */ +``` + +### `bool` + +```python +value: bool = /* values here */ +``` + diff --git a/docs/components/parameters2.mdx b/docs/components/parameters2.mdx new file mode 100644 index 00000000..08033643 --- /dev/null +++ b/docs/components/parameters2.mdx @@ -0,0 +1,24 @@ +--- +title: "Parameters2" +--- + +## Supported Types + +### `str` + +```python +value: str = /* values here */ +``` + +### `float` + +```python +value: float = /* values here */ +``` + +### `bool` + +```python +value: bool = /* values here */ +``` + diff --git a/docs/components/parameters3.mdx b/docs/components/parameters3.mdx new file mode 100644 index 00000000..10aae495 --- /dev/null +++ b/docs/components/parameters3.mdx @@ -0,0 +1,36 @@ +--- +title: "Parameters3" +--- + +## Supported Types + +### `str` + +```python +value: str = /* values here */ +``` + +### `float` + +```python +value: float = /* values here */ +``` + +### `bool` + +```python +value: bool = /* values here */ +``` + +### `List[Nullable[components.Parameters1]]` + +```python +value: List[Nullable[components.Parameters1]] = /* values here */ +``` + +### `Dict[str, Nullable[components.Parameters2]]` + +```python +value: Dict[str, Nullable[components.Parameters2]] = /* values here */ +``` + diff --git a/docs/components/payloadtoolargeresponseerrordata.mdx b/docs/components/payloadtoolargeresponseerrordata.mdx index 3d55fb22..bb7c7f6b 100644 --- a/docs/components/payloadtoolargeresponseerrordata.mdx +++ b/docs/components/payloadtoolargeresponseerrordata.mdx @@ -7,8 +7,8 @@ Error data for PayloadTooLargeResponse ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `code` | *int* | :heavy_check_mark: | N/A | -| `message` | *str* | :heavy_check_mark: | N/A | -| `metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `code` | *int* | :heavy_check_mark: | N/A | +| `message` | *str* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/paymentrequiredresponseerrordata.mdx b/docs/components/paymentrequiredresponseerrordata.mdx index 2dc83a9d..225e2880 100644 --- a/docs/components/paymentrequiredresponseerrordata.mdx +++ b/docs/components/paymentrequiredresponseerrordata.mdx @@ -7,8 +7,8 @@ Error data for PaymentRequiredResponse ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `code` | *int* | :heavy_check_mark: | N/A | -| `message` | *str* | :heavy_check_mark: | N/A | -| `metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `code` | *int* | :heavy_check_mark: | N/A | +| `message` | *str* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/pipelinestage.mdx b/docs/components/pipelinestage.mdx index fb000252..2f7a26c0 100644 --- a/docs/components/pipelinestage.mdx +++ b/docs/components/pipelinestage.mdx @@ -7,7 +7,7 @@ title: "PipelineStage" | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `cost_usd` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | | -| `data` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `data` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `guardrail_id` | *Optional[str]* | :heavy_minus_sign: | N/A | | | `guardrail_scope` | *Optional[str]* | :heavy_minus_sign: | N/A | | | `name` | *str* | :heavy_check_mark: | N/A | | diff --git a/docs/components/preferredmaxlatency.mdx b/docs/components/preferredmaxlatency.mdx index 0c78ef7a..6950adfd 100644 --- a/docs/components/preferredmaxlatency.mdx +++ b/docs/components/preferredmaxlatency.mdx @@ -19,9 +19,3 @@ value: float = /* values here */ value: components.PercentileLatencyCutoffs = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/preferredminthroughput.mdx b/docs/components/preferredminthroughput.mdx index 348b5703..9b965b81 100644 --- a/docs/components/preferredminthroughput.mdx +++ b/docs/components/preferredminthroughput.mdx @@ -19,9 +19,3 @@ value: float = /* values here */ value: components.PercentileThroughputCutoffs = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/presetdesignatedversion.mdx b/docs/components/presetdesignatedversion.mdx index 0db54917..5c5675be 100644 --- a/docs/components/presetdesignatedversion.mdx +++ b/docs/components/presetdesignatedversion.mdx @@ -7,13 +7,13 @@ A specific version of a preset, containing config and optional system prompt. ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `config` | Dict[str, *Nullable[Any]*] | :heavy_check_mark: | N/A | -| `created_at` | *str* | :heavy_check_mark: | N/A | -| `creator_id` | *str* | :heavy_check_mark: | N/A | -| `id` | *str* | :heavy_check_mark: | N/A | -| `preset_id` | *str* | :heavy_check_mark: | N/A | -| `system_prompt` | *Nullable[str]* | :heavy_check_mark: | N/A | -| `updated_at` | *str* | :heavy_check_mark: | N/A | -| `version` | *int* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `config` | Dict[str, *Any*] | :heavy_check_mark: | N/A | +| `created_at` | *str* | :heavy_check_mark: | N/A | +| `creator_id` | *str* | :heavy_check_mark: | N/A | +| `id` | *str* | :heavy_check_mark: | N/A | +| `preset_id` | *str* | :heavy_check_mark: | N/A | +| `system_prompt` | *Nullable[str]* | :heavy_check_mark: | N/A | +| `updated_at` | *str* | :heavy_check_mark: | N/A | +| `version` | *int* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/components/providername.mdx b/docs/components/providername.mdx index 073e1a13..311793cd 100644 --- a/docs/components/providername.mdx +++ b/docs/components/providername.mdx @@ -8,7 +8,7 @@ title: "ProviderName" from openrouter.components import ProviderName # Open enum: unrecognized values are captured as UnrecognizedStr -value: ProviderName = "Meta" +value: ProviderName = "AkashML" ``` @@ -16,7 +16,6 @@ value: ProviderName = "Meta" This is an open enum. Unrecognized values will not fail type checks. -- `"Meta"` - `"AkashML"` - `"AI21"` - `"AionLabs"` @@ -67,6 +66,7 @@ This is an open enum. Unrecognized values will not fail type checks. - `"Liquid"` - `"Mara"` - `"Mancer 2"` +- `"Meta"` - `"Minimax"` - `"ModelRun"` - `"Mistral"` @@ -99,6 +99,7 @@ This is an open enum. Unrecognized values will not fail type checks. - `"Stealth"` - `"StreamLake"` - `"Switchpoint"` +- `"Tencent"` - `"Tenstorrent"` - `"Together"` - `"Upstage"` diff --git a/docs/components/provideroptions.mdx b/docs/components/provideroptions.mdx index be2483fc..9c1c5a8e 100644 --- a/docs/components/provideroptions.mdx +++ b/docs/components/provideroptions.mdx @@ -7,128 +7,129 @@ Provider-specific options keyed by provider slug. Only options for the matched p ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `oneai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `ai21` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `aion_labs` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `akashml` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `alibaba` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `amazon_bedrock` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `amazon_nova` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `ambient` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `anthropic` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `anyscale` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `arcee_ai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `atlas_cloud` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `atoma` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `avian` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `azure` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `baidu` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `baseten` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `black_forest_labs` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `byteplus` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `centml` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `cerebras` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `chutes` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `cirrascale` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `clarifai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `cloudflare` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `cohere` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `crofai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `crucible` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `crusoe` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `darkbloom` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `decart` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `deepgram` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `deepinfra` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `deepseek` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `dekallm` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `digitalocean` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `enfer` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `fake_provider` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `featherless` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `fireworks` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `friendli` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `gmicloud` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `google_ai_studio` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `google_vertex` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `gopomelo` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `groq` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `heygen` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `huggingface` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `hyperbolic` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `hyperbolic_quantized` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inception` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inceptron` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inferact_vllm` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inference_net` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `infermatic` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inflection` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inocloud` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `io_net` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `ionstream` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `klusterai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `krea` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `lambda_` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `lepton` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `liquid` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `lynn` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `lynn_private` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `mancer` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `mancer_old` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `mara` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `meta` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `minimax` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `mistral` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `modal` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `modelrun` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `modular` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `moonshotai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `morph` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `ncompass` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `nebius` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `nex_agi` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `nextbit` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `nineteen` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `novita` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `nvidia` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `octoai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `open_inference` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `openai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `parasail` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `perceptron` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `perplexity` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `phala` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `poolside` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `quiver` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `recraft` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `recursal` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `reflection` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `reka` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `relace` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `replicate` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sail_research` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sakana` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sambanova` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sambanova_cloaked` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `seed` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sf_compute` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `siliconflow` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sourceful` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `stealth` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `stepfun` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `streamlake` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `switchpoint` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `targon` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `tenstorrent` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `together` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `together_lite` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `ubicloud` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `upstage` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `venice` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `wafer` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `wandb` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `xai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `xiaomi` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `z_ai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------- | ---------------------- | ---------------------- | ---------------------- | +| `oneai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `ai21` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `aion_labs` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `akashml` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `alibaba` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `amazon_bedrock` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `amazon_nova` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `ambient` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `anthropic` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `anyscale` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `arcee_ai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `atlas_cloud` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `atoma` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `avian` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `azure` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `baidu` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `baseten` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `black_forest_labs` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `byteplus` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `centml` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `cerebras` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `chutes` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `cirrascale` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `clarifai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `cloudflare` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `cohere` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `crofai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `crucible` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `crusoe` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `darkbloom` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `decart` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `deepgram` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `deepinfra` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `deepseek` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `dekallm` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `digitalocean` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `enfer` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `fake_provider` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `featherless` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `fireworks` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `friendli` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `gmicloud` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `google_ai_studio` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `google_vertex` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `gopomelo` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `groq` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `heygen` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `huggingface` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `hyperbolic` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `hyperbolic_quantized` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inception` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inceptron` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inferact_vllm` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inference_net` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `infermatic` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inflection` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inocloud` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `io_net` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `ionstream` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `klusterai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `krea` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `lambda_` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `lepton` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `liquid` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `lynn` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `lynn_private` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `mancer` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `mancer_old` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `mara` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `meta` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `minimax` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `mistral` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `modal` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `modelrun` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `modular` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `moonshotai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `morph` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `ncompass` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `nebius` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `nex_agi` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `nextbit` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `nineteen` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `novita` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `nvidia` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `octoai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `open_inference` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `openai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `parasail` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `perceptron` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `perplexity` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `phala` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `poolside` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `quiver` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `recraft` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `recursal` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `reflection` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `reka` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `relace` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `replicate` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sail_research` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sakana` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sambanova` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sambanova_cloaked` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `seed` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sf_compute` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `siliconflow` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sourceful` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `stealth` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `stepfun` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `streamlake` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `switchpoint` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `targon` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `tencent` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `tenstorrent` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `together` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `together_lite` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `ubicloud` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `upstage` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `venice` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `wafer` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `wandb` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `xai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `xiaomi` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `z_ai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/provideroverloadedresponseerrordata.mdx b/docs/components/provideroverloadedresponseerrordata.mdx index 05bcfcee..8318f521 100644 --- a/docs/components/provideroverloadedresponseerrordata.mdx +++ b/docs/components/provideroverloadedresponseerrordata.mdx @@ -7,8 +7,8 @@ Error data for ProviderOverloadedResponse ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `code` | *int* | :heavy_check_mark: | N/A | -| `message` | *str* | :heavy_check_mark: | N/A | -| `metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `code` | *int* | :heavy_check_mark: | N/A | +| `message` | *str* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/providerpreferencessort.mdx b/docs/components/providerpreferencessort.mdx index 72d68077..2030486f 100644 --- a/docs/components/providerpreferencessort.mdx +++ b/docs/components/providerpreferencessort.mdx @@ -19,9 +19,3 @@ value: components.ProviderSort = /* values here */ value: components.ProviderSortConfig = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/providerresponseprovidername.mdx b/docs/components/providerresponseprovidername.mdx index c77d24a3..8cbe511b 100644 --- a/docs/components/providerresponseprovidername.mdx +++ b/docs/components/providerresponseprovidername.mdx @@ -34,7 +34,6 @@ This is an open enum. Unrecognized values will not fail type checks. - `"Lynn 2"` - `"Lynn"` - `"Mancer"` -- `"Meta"` - `"Modal"` - `"Nineteen"` - `"OctoAI"` @@ -97,6 +96,7 @@ This is an open enum. Unrecognized values will not fail type checks. - `"Liquid"` - `"Mara"` - `"Mancer 2"` +- `"Meta"` - `"Minimax"` - `"ModelRun"` - `"Mistral"` @@ -129,6 +129,7 @@ This is an open enum. Unrecognized values will not fail type checks. - `"Stealth"` - `"StreamLake"` - `"Switchpoint"` +- `"Tencent"` - `"Tenstorrent"` - `"Together"` - `"Upstage"` diff --git a/docs/components/publicendpoint.mdx b/docs/components/publicendpoint.mdx index 53b22a2c..79cab222 100644 --- a/docs/components/publicendpoint.mdx +++ b/docs/components/publicendpoint.mdx @@ -18,7 +18,7 @@ Information about a specific model endpoint | `name` | *str* | :heavy_check_mark: | N/A | | | `pricing` | [components.Pricing](../components/pricing.mdx) | :heavy_check_mark: | N/A | | | `provider_name` | [components.ProviderName](../components/providername.mdx) | :heavy_check_mark: | N/A | OpenAI | -| `quantization` | [Nullable[components.PublicEndpointQuantization]](../components/publicendpointquantization.mdx) | :heavy_check_mark: | N/A | fp16 | +| `quantization` | [Nullable[components.Quantization]](../components/quantization.mdx) | :heavy_check_mark: | N/A | fp16 | | `status` | [Optional[components.EndpointStatus]](../components/endpointstatus.mdx) | :heavy_minus_sign: | N/A | 0 | | `supported_parameters` | List[[components.Parameter](../components/parameter.mdx)] | :heavy_check_mark: | N/A | | | `supports_implicit_caching` | *bool* | :heavy_check_mark: | N/A | | diff --git a/docs/components/publicendpointquantization.mdx b/docs/components/publicendpointquantization.mdx deleted file mode 100644 index 4498d08f..00000000 --- a/docs/components/publicendpointquantization.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "PublicEndpointQuantization" ---- - -## Example Usage - -```python -from openrouter.components import PublicEndpointQuantization - -# Open enum: unrecognized values are captured as UnrecognizedStr -value: PublicEndpointQuantization = "int4" -``` - - -## Values - -This is an open enum. Unrecognized values will not fail type checks. - -- `"int4"` -- `"int8"` -- `"fp4"` -- `"fp6"` -- `"fp8"` -- `"fp16"` -- `"bf16"` -- `"fp32"` -- `"unknown"` diff --git a/docs/components/reasoningconfig.mdx b/docs/components/reasoningconfig.mdx index d087355d..12bc5225 100644 --- a/docs/components/reasoningconfig.mdx +++ b/docs/components/reasoningconfig.mdx @@ -2,9 +2,6 @@ title: "ReasoningConfig" --- -Configuration for reasoning mode in the response - - ## Fields | Field | Type | Required | Description | Example | diff --git a/docs/components/requesttimeoutresponseerrordata.mdx b/docs/components/requesttimeoutresponseerrordata.mdx index 71579d93..711c93c9 100644 --- a/docs/components/requesttimeoutresponseerrordata.mdx +++ b/docs/components/requesttimeoutresponseerrordata.mdx @@ -7,8 +7,8 @@ Error data for RequestTimeoutResponse ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `code` | *int* | :heavy_check_mark: | N/A | -| `message` | *str* | :heavy_check_mark: | N/A | -| `metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `code` | *int* | :heavy_check_mark: | N/A | +| `message` | *str* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/requireapprovalunion.mdx b/docs/components/requireapprovalunion.mdx index 9ff15b47..01acc3f8 100644 --- a/docs/components/requireapprovalunion.mdx +++ b/docs/components/requireapprovalunion.mdx @@ -22,9 +22,3 @@ value: components.RequireApprovalAlways = /* values here */ value: components.RequireApprovalNever = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/responsesrequest.mdx b/docs/components/responsesrequest.mdx index 446462b5..ce6df6a2 100644 --- a/docs/components/responsesrequest.mdx +++ b/docs/components/responsesrequest.mdx @@ -26,7 +26,7 @@ Request schema for Responses endpoint | `parallel_tool_calls` | *OptionalNullable[bool]* | :heavy_minus_sign: | N/A | | | `plugins` | List[[components.ResponsesRequestPlugin](../components/responsesrequestplugin.mdx)] | :heavy_minus_sign: | Plugins you want to enable for this request, including their settings. | | | `presence_penalty` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | | -| `previous_response_id` | *OptionalNullable[Any]* | :heavy_minus_sign: | Not supported. The Responses API is stateless: no responses are stored, so a previous response cannot be referenced. Requests with a non-null value are rejected with a 400 error. Send the full conversation history in `input` instead. | | +| `previous_response_id` | *Optional[Any]* | :heavy_minus_sign: | Not supported. The Responses API is stateless: no responses are stored, so a previous response cannot be referenced. Requests with a non-null value are rejected with a 400 error. Send the full conversation history in `input` instead. | | | `prompt` | [OptionalNullable[components.StoredPromptTemplate]](../components/storedprompttemplate.mdx) | :heavy_minus_sign: | N/A | \{
"id": "prompt-abc123",
"variables": \{
"name": "John"
}
} | | `prompt_cache_key` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | | `prompt_cache_options` | [OptionalNullable[components.PromptCacheOptions]](../components/promptcacheoptions.mdx) | :heavy_minus_sign: | Request-level prompt-cache controls. `mode: "explicit"` disables OpenAI-managed breakpoints so only blocks marked with `prompt_cache_breakpoint` are cached. Only supported by OpenAI GPT-5.6 and newer. | \{
"mode": "explicit",
"ttl": "30m"
} | diff --git a/docs/components/responsesrequesttoolfunction.mdx b/docs/components/responsesrequesttoolfunction.mdx index 5f6cc606..783bfa34 100644 --- a/docs/components/responsesrequesttoolfunction.mdx +++ b/docs/components/responsesrequesttoolfunction.mdx @@ -11,6 +11,6 @@ Function tool definition | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | | `description` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | `name` | *str* | :heavy_check_mark: | N/A | -| `parameters` | Dict[str, *Nullable[Any]*] | :heavy_check_mark: | N/A | +| `parameters` | Dict[str, *Any*] | :heavy_check_mark: | N/A | | `strict` | *OptionalNullable[bool]* | :heavy_minus_sign: | N/A | | `type` | [components.ResponsesRequestType](../components/responsesrequesttype.mdx) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/components/responsesstreamingresponse.mdx b/docs/components/responsesstreamingresponse.mdx index a9e4e2a7..2d97adfb 100644 --- a/docs/components/responsesstreamingresponse.mdx +++ b/docs/components/responsesstreamingresponse.mdx @@ -4,6 +4,6 @@ title: "ResponsesStreamingResponse" ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `data` | [components.StreamEvents](../components/streamevents.mdx) | :heavy_check_mark: | Union of all possible event types emitted during response streaming | \{
"response": \{
"created_at": 1704067200,
"error": null,
"id": "resp-abc123",
"incomplete_details": null,
"instructions": null,
"max_output_tokens": null,
"metadata": null,
"model": "gpt-4",
"object": "response",
"output": [],
"parallel_tool_calls": true,
"status": "in_progress",
"temperature": null,
"tool_choice": "auto",
"tools": [],
"top_p": null
},
"sequence_number": 0,
"type": "response.created"
} | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `data` | [components.StreamEvents](../components/streamevents.mdx) | :heavy_check_mark: | Union of all possible event types emitted during response streaming | \{
"response": \{
"completed_at": null,
"created_at": 1704067200,
"error": null,
"frequency_penalty": null,
"id": "resp-abc123",
"incomplete_details": null,
"instructions": null,
"max_output_tokens": null,
"metadata": null,
"model": "gpt-4",
"object": "response",
"output": [],
"parallel_tool_calls": true,
"presence_penalty": null,
"status": "in_progress",
"temperature": null,
"tool_choice": "auto",
"tools": [],
"top_p": null
},
"sequence_number": 0,
"type": "response.created"
} | \ No newline at end of file diff --git a/docs/components/routerparams.mdx b/docs/components/routerparams.mdx index e5316d78..5354eeb9 100644 --- a/docs/components/routerparams.mdx +++ b/docs/components/routerparams.mdx @@ -9,4 +9,4 @@ title: "RouterParams" | `quality_floor` | *Optional[float]* | :heavy_minus_sign: | N/A | | | `throughput_floor` | *Optional[float]* | :heavy_minus_sign: | N/A | | | `version_group` | *Optional[str]* | :heavy_minus_sign: | N/A | | -| `__pydantic_extra__` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \{
"version_group": "anthropic/claude-sonnet-4"
} | \ No newline at end of file +| `__pydantic_extra__` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \{
"version_group": "anthropic/claude-sonnet-4"
} | \ No newline at end of file diff --git a/docs/components/serviceunavailableresponseerrordata.mdx b/docs/components/serviceunavailableresponseerrordata.mdx index c4f86510..e4da707c 100644 --- a/docs/components/serviceunavailableresponseerrordata.mdx +++ b/docs/components/serviceunavailableresponseerrordata.mdx @@ -7,8 +7,8 @@ Error data for ServiceUnavailableResponse ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `code` | *int* | :heavy_check_mark: | N/A | -| `message` | *str* | :heavy_check_mark: | N/A | -| `metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `code` | *int* | :heavy_check_mark: | N/A | +| `message` | *str* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/shellcallitem.mdx b/docs/components/shellcallitem.mdx index 02c5c8a8..a43e4598 100644 --- a/docs/components/shellcallitem.mdx +++ b/docs/components/shellcallitem.mdx @@ -7,11 +7,11 @@ A shell command execution call (newer variant) ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `action` | [components.ShellCallItemAction](../components/shellcallitemaction.mdx) | :heavy_check_mark: | N/A | | -| `call_id` | *str* | :heavy_check_mark: | N/A | | -| `environment` | *OptionalNullable[Any]* | :heavy_minus_sign: | N/A | | -| `id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | -| `status` | [OptionalNullable[components.ShellCallItemStatus]](../components/shellcallitemstatus.mdx) | :heavy_minus_sign: | N/A | completed | -| `type` | [components.ShellCallItemType](../components/shellcallitemtype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `action` | [components.ShellCallItemAction](../components/shellcallitemaction.mdx) | :heavy_check_mark: | N/A | | +| `call_id` | *str* | :heavy_check_mark: | N/A | | +| `environment` | *Optional[Any]* | :heavy_minus_sign: | N/A | | +| `id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | +| `status` | [OptionalNullable[components.ToolCallStatus]](../components/toolcallstatus.mdx) | :heavy_minus_sign: | N/A | completed | +| `type` | [components.ShellCallItemType](../components/shellcallitemtype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/components/shellcallitemstatus.mdx b/docs/components/shellcallitemstatus.mdx deleted file mode 100644 index b6ec73cd..00000000 --- a/docs/components/shellcallitemstatus.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "ShellCallItemStatus" ---- - -## Example Usage - -```python -from openrouter.components import ShellCallItemStatus - -# Open enum: unrecognized values are captured as UnrecognizedStr -value: ShellCallItemStatus = "in_progress" -``` - - -## Values - -This is an open enum. Unrecognized values will not fail type checks. - -- `"in_progress"` -- `"completed"` -- `"incomplete"` diff --git a/docs/components/shellcalloutputitem.mdx b/docs/components/shellcalloutputitem.mdx index e4456b9c..7cf2cb9d 100644 --- a/docs/components/shellcalloutputitem.mdx +++ b/docs/components/shellcalloutputitem.mdx @@ -7,11 +7,11 @@ Output from a shell command execution (newer variant) ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| `call_id` | *str* | :heavy_check_mark: | N/A | | -| `id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | -| `max_output_length` | *OptionalNullable[int]* | :heavy_minus_sign: | N/A | | -| `output` | List[[components.ShellCallOutputItemOutput](../components/shellcalloutputitemoutput.mdx)] | :heavy_check_mark: | N/A | | -| `status` | [OptionalNullable[components.ShellCallOutputItemStatus]](../components/shellcalloutputitemstatus.mdx) | :heavy_minus_sign: | N/A | completed | -| `type` | [components.ShellCallOutputItemType](../components/shellcalloutputitemtype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `call_id` | *str* | :heavy_check_mark: | N/A | | +| `id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | +| `max_output_length` | *OptionalNullable[int]* | :heavy_minus_sign: | N/A | | +| `output` | List[[components.ShellCallOutputItemOutput](../components/shellcalloutputitemoutput.mdx)] | :heavy_check_mark: | N/A | | +| `status` | [OptionalNullable[components.ToolCallStatus]](../components/toolcallstatus.mdx) | :heavy_minus_sign: | N/A | completed | +| `type` | [components.ShellCallOutputItemType](../components/shellcalloutputitemtype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/components/shellcalloutputitemoutput.mdx b/docs/components/shellcalloutputitemoutput.mdx index 9d485575..fdfd9aee 100644 --- a/docs/components/shellcalloutputitemoutput.mdx +++ b/docs/components/shellcalloutputitemoutput.mdx @@ -4,9 +4,9 @@ title: "ShellCallOutputItemOutput" ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `content` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | -| `exit_code` | *OptionalNullable[int]* | :heavy_minus_sign: | N/A | -| `type` | *str* | :heavy_check_mark: | N/A | -| `__pydantic_extra__` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------- | ----------------------- | ----------------------- | ----------------------- | +| `content` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | +| `exit_code` | *OptionalNullable[int]* | :heavy_minus_sign: | N/A | +| `type` | *str* | :heavy_check_mark: | N/A | +| `__pydantic_extra__` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/shellcalloutputitemstatus.mdx b/docs/components/shellcalloutputitemstatus.mdx deleted file mode 100644 index d1b61c6d..00000000 --- a/docs/components/shellcalloutputitemstatus.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "ShellCallOutputItemStatus" ---- - -## Example Usage - -```python -from openrouter.components import ShellCallOutputItemStatus - -# Open enum: unrecognized values are captured as UnrecognizedStr -value: ShellCallOutputItemStatus = "in_progress" -``` - - -## Values - -This is an open enum. Unrecognized values will not fail type checks. - -- `"in_progress"` -- `"completed"` -- `"incomplete"` diff --git a/docs/components/stop.mdx b/docs/components/stop.mdx index 0f147f6e..6c1483e3 100644 --- a/docs/components/stop.mdx +++ b/docs/components/stop.mdx @@ -19,9 +19,3 @@ value: str = /* values here */ value: List[str] = /* values here */ ``` -### `Any` - -```python -value: Any = /* values here */ -``` - diff --git a/docs/components/streameventsresponsecompleted.mdx b/docs/components/streameventsresponsecompleted.mdx index cd399518..35bdaf31 100644 --- a/docs/components/streameventsresponsecompleted.mdx +++ b/docs/components/streameventsresponsecompleted.mdx @@ -7,8 +7,8 @@ Event emitted when a response has completed successfully ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `response` | [components.OpenResponsesResult](../components/openresponsesresult.mdx) | :heavy_check_mark: | Complete non-streaming response from the Responses API | \{
"created_at": 1704067200,
"error": null,
"id": "resp-abc123",
"incomplete_details": null,
"instructions": null,
"max_output_tokens": null,
"metadata": null,
"model": "gpt-4",
"object": "response",
"output": [
\{
"content": [
\{
"annotations": [],
"text": "Hello! How can I help you today?",
"type": "output_text"
}
],
"id": "msg-abc123",
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": true,
"status": "completed",
"temperature": null,
"tool_choice": "auto",
"tools": [],
"top_p": null,
"usage": \{
"input_tokens": 10,
"input_tokens_details": \{
"cached_tokens": 0
},
"output_tokens": 25,
"output_tokens_details": \{
"reasoning_tokens": 0
},
"total_tokens": 35
}
} | -| `sequence_number` | *int* | :heavy_check_mark: | N/A | | -| `type` | [components.StreamEventsResponseCompletedType](../components/streameventsresponsecompletedtype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `response` | [components.OpenResponsesResult](../components/openresponsesresult.mdx) | :heavy_check_mark: | Complete non-streaming response from the Responses API | \{
"completed_at": 1704067210,
"created_at": 1704067200,
"error": null,
"frequency_penalty": null,
"id": "resp-abc123",
"incomplete_details": null,
"instructions": null,
"max_output_tokens": null,
"metadata": null,
"model": "gpt-4",
"object": "response",
"output": [
\{
"content": [
\{
"annotations": [],
"text": "Hello! How can I help you today?",
"type": "output_text"
}
],
"id": "msg-abc123",
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": true,
"presence_penalty": null,
"status": "completed",
"temperature": null,
"tool_choice": "auto",
"tools": [],
"top_p": null,
"usage": \{
"input_tokens": 10,
"input_tokens_details": \{
"cached_tokens": 0
},
"output_tokens": 25,
"output_tokens_details": \{
"reasoning_tokens": 0
},
"total_tokens": 35
}
} | +| `sequence_number` | *int* | :heavy_check_mark: | N/A | | +| `type` | [components.StreamEventsResponseCompletedType](../components/streameventsresponsecompletedtype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/components/streameventsresponsefailed.mdx b/docs/components/streameventsresponsefailed.mdx index 4c53cdcc..2fe71e96 100644 --- a/docs/components/streameventsresponsefailed.mdx +++ b/docs/components/streameventsresponsefailed.mdx @@ -7,8 +7,8 @@ Event emitted when a response has failed ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `response` | [components.OpenResponsesResult](../components/openresponsesresult.mdx) | :heavy_check_mark: | Complete non-streaming response from the Responses API | \{
"created_at": 1704067200,
"error": null,
"id": "resp-abc123",
"incomplete_details": null,
"instructions": null,
"max_output_tokens": null,
"metadata": null,
"model": "gpt-4",
"object": "response",
"output": [
\{
"content": [
\{
"annotations": [],
"text": "Hello! How can I help you today?",
"type": "output_text"
}
],
"id": "msg-abc123",
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": true,
"status": "completed",
"temperature": null,
"tool_choice": "auto",
"tools": [],
"top_p": null,
"usage": \{
"input_tokens": 10,
"input_tokens_details": \{
"cached_tokens": 0
},
"output_tokens": 25,
"output_tokens_details": \{
"reasoning_tokens": 0
},
"total_tokens": 35
}
} | -| `sequence_number` | *int* | :heavy_check_mark: | N/A | | -| `type` | [components.StreamEventsResponseFailedType](../components/streameventsresponsefailedtype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `response` | [components.OpenResponsesResult](../components/openresponsesresult.mdx) | :heavy_check_mark: | Complete non-streaming response from the Responses API | \{
"completed_at": 1704067210,
"created_at": 1704067200,
"error": null,
"frequency_penalty": null,
"id": "resp-abc123",
"incomplete_details": null,
"instructions": null,
"max_output_tokens": null,
"metadata": null,
"model": "gpt-4",
"object": "response",
"output": [
\{
"content": [
\{
"annotations": [],
"text": "Hello! How can I help you today?",
"type": "output_text"
}
],
"id": "msg-abc123",
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": true,
"presence_penalty": null,
"status": "completed",
"temperature": null,
"tool_choice": "auto",
"tools": [],
"top_p": null,
"usage": \{
"input_tokens": 10,
"input_tokens_details": \{
"cached_tokens": 0
},
"output_tokens": 25,
"output_tokens_details": \{
"reasoning_tokens": 0
},
"total_tokens": 35
}
} | +| `sequence_number` | *int* | :heavy_check_mark: | N/A | | +| `type` | [components.StreamEventsResponseFailedType](../components/streameventsresponsefailedtype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/components/streameventsresponseincomplete.mdx b/docs/components/streameventsresponseincomplete.mdx index b493c3ea..0abd1db5 100644 --- a/docs/components/streameventsresponseincomplete.mdx +++ b/docs/components/streameventsresponseincomplete.mdx @@ -7,8 +7,8 @@ Event emitted when a response is incomplete ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `response` | [components.OpenResponsesResult](../components/openresponsesresult.mdx) | :heavy_check_mark: | Complete non-streaming response from the Responses API | \{
"created_at": 1704067200,
"error": null,
"id": "resp-abc123",
"incomplete_details": null,
"instructions": null,
"max_output_tokens": null,
"metadata": null,
"model": "gpt-4",
"object": "response",
"output": [
\{
"content": [
\{
"annotations": [],
"text": "Hello! How can I help you today?",
"type": "output_text"
}
],
"id": "msg-abc123",
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": true,
"status": "completed",
"temperature": null,
"tool_choice": "auto",
"tools": [],
"top_p": null,
"usage": \{
"input_tokens": 10,
"input_tokens_details": \{
"cached_tokens": 0
},
"output_tokens": 25,
"output_tokens_details": \{
"reasoning_tokens": 0
},
"total_tokens": 35
}
} | -| `sequence_number` | *int* | :heavy_check_mark: | N/A | | -| `type` | [components.StreamEventsResponseIncompleteType](../components/streameventsresponseincompletetype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `response` | [components.OpenResponsesResult](../components/openresponsesresult.mdx) | :heavy_check_mark: | Complete non-streaming response from the Responses API | \{
"completed_at": 1704067210,
"created_at": 1704067200,
"error": null,
"frequency_penalty": null,
"id": "resp-abc123",
"incomplete_details": null,
"instructions": null,
"max_output_tokens": null,
"metadata": null,
"model": "gpt-4",
"object": "response",
"output": [
\{
"content": [
\{
"annotations": [],
"text": "Hello! How can I help you today?",
"type": "output_text"
}
],
"id": "msg-abc123",
"role": "assistant",
"status": "completed",
"type": "message"
}
],
"parallel_tool_calls": true,
"presence_penalty": null,
"status": "completed",
"temperature": null,
"tool_choice": "auto",
"tools": [],
"top_p": null,
"usage": \{
"input_tokens": 10,
"input_tokens_details": \{
"cached_tokens": 0
},
"output_tokens": 25,
"output_tokens_details": \{
"reasoning_tokens": 0
},
"total_tokens": 35
}
} | +| `sequence_number` | *int* | :heavy_check_mark: | N/A | | +| `type` | [components.StreamEventsResponseIncompleteType](../components/streameventsresponseincompletetype.mdx) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/components/subagentnestedtool.mdx b/docs/components/subagentnestedtool.mdx index f8c149bf..95746225 100644 --- a/docs/components/subagentnestedtool.mdx +++ b/docs/components/subagentnestedtool.mdx @@ -9,6 +9,6 @@ A tool made available to the subagent. Only OpenRouter server tools (e.g. openro | Field | Type | Required | Description | Example | | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| `parameters` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `parameters` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `type` | *str* | :heavy_check_mark: | N/A | | -| `__pydantic_extra__` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \{
"type": "openrouter:web_search"
} | \ No newline at end of file +| `__pydantic_extra__` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \{
"type": "openrouter:web_search"
} | \ No newline at end of file diff --git a/docs/components/tokenizer.mdx b/docs/components/tokenizer.mdx deleted file mode 100644 index 54a76270..00000000 --- a/docs/components/tokenizer.mdx +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Tokenizer" ---- - -Tokenizer type used by the model - -## Example Usage - -```python -from openrouter.components import Tokenizer - -# Open enum: unrecognized values are captured as UnrecognizedStr -value: Tokenizer = "Router" -``` - - -## Values - -This is an open enum. Unrecognized values will not fail type checks. - -- `"Router"` -- `"Media"` -- `"Other"` -- `"GPT"` -- `"Claude"` -- `"Gemini"` -- `"Gemma"` -- `"Grok"` -- `"Cohere"` -- `"Nova"` -- `"Qwen"` -- `"Yi"` -- `"DeepSeek"` -- `"Mistral"` -- `"Llama2"` -- `"Llama3"` -- `"Llama4"` -- `"PaLM"` -- `"RWKV"` -- `"Qwen3"` diff --git a/docs/components/tooladvisor20260301.mdx b/docs/components/tooladvisor20260301.mdx index a00186b5..cf0c0f91 100644 --- a/docs/components/tooladvisor20260301.mdx +++ b/docs/components/tooladvisor20260301.mdx @@ -8,7 +8,7 @@ title: "ToolAdvisor20260301" | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `allowed_callers` | List[[components.AnthropicAllowedCallers](../components/anthropicallowedcallers.mdx)] | :heavy_minus_sign: | N/A | [
"direct"
] | | `cache_control` | [Optional[components.AnthropicCacheControlDirective]](../components/anthropiccachecontroldirective.mdx) | :heavy_minus_sign: | Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format. | \{
"type": "ephemeral"
} | -| `caching` | [OptionalNullable[components.Caching]](../components/caching.mdx) | :heavy_minus_sign: | N/A | \{
"type": "ephemeral"
} | +| `caching` | [OptionalNullable[components.AnthropicCacheControlDirective]](../components/anthropiccachecontroldirective.mdx) | :heavy_minus_sign: | N/A | \{
"type": "ephemeral"
} | | `defer_loading` | *Optional[bool]* | :heavy_minus_sign: | N/A | | | `max_uses` | *Optional[int]* | :heavy_minus_sign: | N/A | | | `model` | *str* | :heavy_check_mark: | N/A | | diff --git a/docs/components/toolchoiceallowed.mdx b/docs/components/toolchoiceallowed.mdx index b33a149e..4e85322c 100644 --- a/docs/components/toolchoiceallowed.mdx +++ b/docs/components/toolchoiceallowed.mdx @@ -10,5 +10,5 @@ Constrains the model to a pre-defined set of allowed tools | Field | Type | Required | Description | | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | | `mode` | [components.Mode](../components/mode.mdx) | :heavy_check_mark: | N/A | -| `tools` | List[Dict[str, *Nullable[Any]*]] | :heavy_check_mark: | N/A | +| `tools` | List[Dict[str, *Any*]] | :heavy_check_mark: | N/A | | `type` | [components.ToolChoiceAllowedType](../components/toolchoiceallowedtype.mdx) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/components/tooltypeephemeral.mdx b/docs/components/tooltypeephemeral.mdx deleted file mode 100644 index 48e6f8af..00000000 --- a/docs/components/tooltypeephemeral.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: "ToolTypeEphemeral" ---- - -## Example Usage - -```python -from openrouter.components import ToolTypeEphemeral -value: ToolTypeEphemeral = "ephemeral" -``` - - -## Values - -- `"ephemeral"` diff --git a/docs/components/toomanyrequestsresponseerrordata.mdx b/docs/components/toomanyrequestsresponseerrordata.mdx index 09697e35..edc2b7de 100644 --- a/docs/components/toomanyrequestsresponseerrordata.mdx +++ b/docs/components/toomanyrequestsresponseerrordata.mdx @@ -7,8 +7,8 @@ Error data for TooManyRequestsResponse ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `code` | *int* | :heavy_check_mark: | N/A | -| `message` | *str* | :heavy_check_mark: | N/A | -| `metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `code` | *int* | :heavy_check_mark: | N/A | +| `message` | *str* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/traceconfig.mdx b/docs/components/traceconfig.mdx index faeac4da..9dadf765 100644 --- a/docs/components/traceconfig.mdx +++ b/docs/components/traceconfig.mdx @@ -14,4 +14,4 @@ Metadata for observability and tracing. Known keys (trace_id, trace_name, span_n | `span_name` | *Optional[str]* | :heavy_minus_sign: | N/A | | | `trace_id` | *Optional[str]* | :heavy_minus_sign: | N/A | | | `trace_name` | *Optional[str]* | :heavy_minus_sign: | N/A | | -| `__pydantic_extra__` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \{
"trace_id": "trace-abc123",
"trace_name": "my-app-trace"
} | \ No newline at end of file +| `__pydantic_extra__` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \{
"trace_id": "trace-abc123",
"trace_name": "my-app-trace"
} | \ No newline at end of file diff --git a/docs/components/unauthorizedresponseerrordata.mdx b/docs/components/unauthorizedresponseerrordata.mdx index 2b412cd7..ff7c1ed4 100644 --- a/docs/components/unauthorizedresponseerrordata.mdx +++ b/docs/components/unauthorizedresponseerrordata.mdx @@ -7,8 +7,8 @@ Error data for UnauthorizedResponse ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `code` | *int* | :heavy_check_mark: | N/A | -| `message` | *str* | :heavy_check_mark: | N/A | -| `metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `code` | *int* | :heavy_check_mark: | N/A | +| `message` | *str* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/unprocessableentityresponseerrordata.mdx b/docs/components/unprocessableentityresponseerrordata.mdx index ef85de0e..5a7e1816 100644 --- a/docs/components/unprocessableentityresponseerrordata.mdx +++ b/docs/components/unprocessableentityresponseerrordata.mdx @@ -7,8 +7,8 @@ Error data for UnprocessableEntityResponse ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `code` | *int* | :heavy_check_mark: | N/A | -| `message` | *str* | :heavy_check_mark: | N/A | -| `metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `code` | *int* | :heavy_check_mark: | N/A | +| `message` | *str* | :heavy_check_mark: | N/A | +| `metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/components/updateobservabilitydestinationrequest.mdx b/docs/components/updateobservabilitydestinationrequest.mdx index f1338423..56bffb4e 100644 --- a/docs/components/updateobservabilitydestinationrequest.mdx +++ b/docs/components/updateobservabilitydestinationrequest.mdx @@ -7,7 +7,7 @@ title: "UpdateObservabilityDestinationRequest" | Field | Type | Required | Description | Example | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `api_key_hashes` | List[*str*] | :heavy_minus_sign: | Optional allowlist of OpenRouter API key hashes. `null` clears the filter (all keys). Omitting leaves the current value. Must contain at least one hash if provided. | null | -| `config` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | Provider-specific configuration fields to update. Masked values are ignored; unset fields keep their current value. | \{
"baseUrl": "https://us.cloud.langfuse.com",
"publicKey": "pk-l...EfGh",
"secretKey": "sk-l...AbCd"
} | +| `config` | Dict[str, *Any*] | :heavy_minus_sign: | Provider-specific configuration fields to update. Masked values are ignored; unset fields keep their current value. | \{
"baseUrl": "https://us.cloud.langfuse.com",
"publicKey": "pk-l...EfGh",
"secretKey": "sk-l...AbCd"
} | | `enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether the destination is enabled. | true | | `filter_rules` | [OptionalNullable[components.ObservabilityFilterRulesConfigNullable]](../components/observabilityfilterrulesconfignullable.mdx) | :heavy_minus_sign: | N/A | null | | `name` | *Optional[str]* | :heavy_minus_sign: | Human-readable name for the destination. | Production Langfuse | diff --git a/docs/components/usage.mdx b/docs/components/usage.mdx index 2b203365..bdccd146 100644 --- a/docs/components/usage.mdx +++ b/docs/components/usage.mdx @@ -2,9 +2,6 @@ title: "Usage" --- -Token usage information for the response - - ## Fields | Field | Type | Required | Description | Example | diff --git a/docs/components/videogenerationrequestoptions.mdx b/docs/components/videogenerationrequestoptions.mdx index 9ffcd9ec..696bc465 100644 --- a/docs/components/videogenerationrequestoptions.mdx +++ b/docs/components/videogenerationrequestoptions.mdx @@ -7,128 +7,129 @@ Provider-specific options keyed by provider slug. Only options for the matched p ## Fields -| Field | Type | Required | Description | -| -------------------------- | -------------------------- | -------------------------- | -------------------------- | -| `oneai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `ai21` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `aion_labs` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `akashml` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `alibaba` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `amazon_bedrock` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `amazon_nova` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `ambient` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `anthropic` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `anyscale` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `arcee_ai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `atlas_cloud` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `atoma` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `avian` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `azure` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `baidu` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `baseten` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `black_forest_labs` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `byteplus` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `centml` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `cerebras` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `chutes` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `cirrascale` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `clarifai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `cloudflare` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `cohere` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `crofai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `crucible` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `crusoe` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `darkbloom` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `decart` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `deepgram` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `deepinfra` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `deepseek` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `dekallm` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `digitalocean` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `enfer` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `fake_provider` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `featherless` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `fireworks` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `friendli` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `gmicloud` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `google_ai_studio` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `google_vertex` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `gopomelo` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `groq` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `heygen` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `huggingface` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `hyperbolic` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `hyperbolic_quantized` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inception` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inceptron` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inferact_vllm` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inference_net` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `infermatic` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inflection` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `inocloud` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `io_net` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `ionstream` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `klusterai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `krea` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `lambda_` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `lepton` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `liquid` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `lynn` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `lynn_private` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `mancer` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `mancer_old` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `mara` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `meta` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `minimax` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `mistral` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `modal` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `modelrun` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `modular` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `moonshotai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `morph` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `ncompass` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `nebius` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `nex_agi` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `nextbit` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `nineteen` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `novita` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `nvidia` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `octoai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `open_inference` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `openai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `parasail` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `perceptron` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `perplexity` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `phala` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `poolside` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `quiver` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `recraft` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `recursal` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `reflection` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `reka` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `relace` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `replicate` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sail_research` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sakana` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sambanova` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sambanova_cloaked` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `seed` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sf_compute` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `siliconflow` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `sourceful` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `stealth` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `stepfun` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `streamlake` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `switchpoint` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `targon` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `tenstorrent` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `together` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `together_lite` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `ubicloud` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `upstage` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `venice` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `wafer` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `wandb` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `xai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `xiaomi` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | -| `z_ai` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------- | ---------------------- | ---------------------- | ---------------------- | +| `oneai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `ai21` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `aion_labs` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `akashml` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `alibaba` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `amazon_bedrock` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `amazon_nova` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `ambient` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `anthropic` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `anyscale` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `arcee_ai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `atlas_cloud` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `atoma` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `avian` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `azure` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `baidu` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `baseten` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `black_forest_labs` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `byteplus` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `centml` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `cerebras` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `chutes` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `cirrascale` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `clarifai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `cloudflare` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `cohere` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `crofai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `crucible` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `crusoe` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `darkbloom` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `decart` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `deepgram` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `deepinfra` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `deepseek` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `dekallm` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `digitalocean` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `enfer` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `fake_provider` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `featherless` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `fireworks` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `friendli` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `gmicloud` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `google_ai_studio` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `google_vertex` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `gopomelo` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `groq` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `heygen` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `huggingface` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `hyperbolic` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `hyperbolic_quantized` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inception` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inceptron` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inferact_vllm` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inference_net` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `infermatic` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inflection` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `inocloud` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `io_net` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `ionstream` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `klusterai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `krea` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `lambda_` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `lepton` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `liquid` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `lynn` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `lynn_private` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `mancer` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `mancer_old` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `mara` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `meta` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `minimax` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `mistral` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `modal` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `modelrun` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `modular` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `moonshotai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `morph` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `ncompass` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `nebius` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `nex_agi` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `nextbit` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `nineteen` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `novita` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `nvidia` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `octoai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `open_inference` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `openai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `parasail` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `perceptron` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `perplexity` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `phala` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `poolside` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `quiver` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `recraft` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `recursal` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `reflection` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `reka` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `relace` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `replicate` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sail_research` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sakana` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sambanova` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sambanova_cloaked` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `seed` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sf_compute` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `siliconflow` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `sourceful` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `stealth` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `stepfun` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `streamlake` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `switchpoint` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `targon` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `tencent` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `tenstorrent` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `together` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `together_lite` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `ubicloud` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `upstage` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `venice` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `wafer` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `wandb` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `xai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `xiaomi` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | +| `z_ai` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/errors/badgatewayresponseerror.mdx b/docs/errors/badgatewayresponseerror.mdx index 62ce7a1a..d596a9c0 100644 --- a/docs/errors/badgatewayresponseerror.mdx +++ b/docs/errors/badgatewayresponseerror.mdx @@ -10,5 +10,5 @@ Bad Gateway - Provider/upstream API failure | Field | Type | Required | Description | Example | | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | | `error` | [components.BadGatewayResponseErrorData](../components/badgatewayresponseerrordata.mdx) | :heavy_check_mark: | Error data for BadGatewayResponse | \{
"code": 502,
"message": "Provider returned error"
} | -| `openrouter_metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `openrouter_metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/errors/badrequestresponseerror.mdx b/docs/errors/badrequestresponseerror.mdx index 5453987e..68e67bcf 100644 --- a/docs/errors/badrequestresponseerror.mdx +++ b/docs/errors/badrequestresponseerror.mdx @@ -10,5 +10,5 @@ Bad Request - Invalid request parameters or malformed input | Field | Type | Required | Description | Example | | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | | `error` | [components.BadRequestResponseErrorData](../components/badrequestresponseerrordata.mdx) | :heavy_check_mark: | Error data for BadRequestResponse | \{
"code": 400,
"message": "Invalid request parameters"
} | -| `openrouter_metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `openrouter_metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/errors/conflictresponseerror.mdx b/docs/errors/conflictresponseerror.mdx index e3a48471..c6f96de8 100644 --- a/docs/errors/conflictresponseerror.mdx +++ b/docs/errors/conflictresponseerror.mdx @@ -10,5 +10,5 @@ Conflict - Resource conflict or concurrent modification | Field | Type | Required | Description | Example | | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | | `error` | [components.ConflictResponseErrorData](../components/conflictresponseerrordata.mdx) | :heavy_check_mark: | Error data for ConflictResponse | \{
"code": 409,
"message": "Resource conflict. Please try again later."
} | -| `openrouter_metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `openrouter_metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/errors/edgenetworktimeoutresponseerror.mdx b/docs/errors/edgenetworktimeoutresponseerror.mdx index 5e48d2eb..845c9d6c 100644 --- a/docs/errors/edgenetworktimeoutresponseerror.mdx +++ b/docs/errors/edgenetworktimeoutresponseerror.mdx @@ -10,5 +10,5 @@ Infrastructure Timeout - Provider request timed out at edge network | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | | `error` | [components.EdgeNetworkTimeoutResponseErrorData](../components/edgenetworktimeoutresponseerrordata.mdx) | :heavy_check_mark: | Error data for EdgeNetworkTimeoutResponse | \{
"code": 524,
"message": "Request timed out. Please try again later."
} | -| `openrouter_metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `openrouter_metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/errors/forbiddenresponseerror.mdx b/docs/errors/forbiddenresponseerror.mdx index c520471d..657b79d0 100644 --- a/docs/errors/forbiddenresponseerror.mdx +++ b/docs/errors/forbiddenresponseerror.mdx @@ -10,5 +10,5 @@ Forbidden - Authentication successful but insufficient permissions | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | | `error` | [components.ForbiddenResponseErrorData](../components/forbiddenresponseerrordata.mdx) | :heavy_check_mark: | Error data for ForbiddenResponse | \{
"code": 403,
"message": "Only management keys can perform this operation"
} | -| `openrouter_metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `openrouter_metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/errors/internalserverresponseerror.mdx b/docs/errors/internalserverresponseerror.mdx index c4a95bf1..2a892b08 100644 --- a/docs/errors/internalserverresponseerror.mdx +++ b/docs/errors/internalserverresponseerror.mdx @@ -10,5 +10,5 @@ Internal Server Error - Unexpected server error | Field | Type | Required | Description | Example | | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | | `error` | [components.InternalServerResponseErrorData](../components/internalserverresponseerrordata.mdx) | :heavy_check_mark: | Error data for InternalServerResponse | \{
"code": 500,
"message": "Internal Server Error"
} | -| `openrouter_metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `openrouter_metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/errors/notfoundresponseerror.mdx b/docs/errors/notfoundresponseerror.mdx index c9c23ff0..5ba79a19 100644 --- a/docs/errors/notfoundresponseerror.mdx +++ b/docs/errors/notfoundresponseerror.mdx @@ -10,5 +10,5 @@ Not Found - Resource does not exist | Field | Type | Required | Description | Example | | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | | `error` | [components.NotFoundResponseErrorData](../components/notfoundresponseerrordata.mdx) | :heavy_check_mark: | Error data for NotFoundResponse | \{
"code": 404,
"message": "Resource not found"
} | -| `openrouter_metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `openrouter_metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/errors/payloadtoolargeresponseerror.mdx b/docs/errors/payloadtoolargeresponseerror.mdx index 06c96f02..ba4d28b0 100644 --- a/docs/errors/payloadtoolargeresponseerror.mdx +++ b/docs/errors/payloadtoolargeresponseerror.mdx @@ -10,5 +10,5 @@ Payload Too Large - Request payload exceeds size limits | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | | `error` | [components.PayloadTooLargeResponseErrorData](../components/payloadtoolargeresponseerrordata.mdx) | :heavy_check_mark: | Error data for PayloadTooLargeResponse | \{
"code": 413,
"message": "Request payload too large"
} | -| `openrouter_metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `openrouter_metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/errors/paymentrequiredresponseerror.mdx b/docs/errors/paymentrequiredresponseerror.mdx index 959733da..f632aa14 100644 --- a/docs/errors/paymentrequiredresponseerror.mdx +++ b/docs/errors/paymentrequiredresponseerror.mdx @@ -10,5 +10,5 @@ Payment Required - Insufficient credits or quota to complete request | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | | `error` | [components.PaymentRequiredResponseErrorData](../components/paymentrequiredresponseerrordata.mdx) | :heavy_check_mark: | Error data for PaymentRequiredResponse | \{
"code": 402,
"message": "Insufficient credits. Add more using https://openrouter.ai/credits"
} | -| `openrouter_metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `openrouter_metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/errors/provideroverloadedresponseerror.mdx b/docs/errors/provideroverloadedresponseerror.mdx index 44e71a2b..c24817c5 100644 --- a/docs/errors/provideroverloadedresponseerror.mdx +++ b/docs/errors/provideroverloadedresponseerror.mdx @@ -10,5 +10,5 @@ Provider Overloaded - Provider is temporarily overloaded | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | | `error` | [components.ProviderOverloadedResponseErrorData](../components/provideroverloadedresponseerrordata.mdx) | :heavy_check_mark: | Error data for ProviderOverloadedResponse | \{
"code": 529,
"message": "Provider returned error"
} | -| `openrouter_metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `openrouter_metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/errors/requesttimeoutresponseerror.mdx b/docs/errors/requesttimeoutresponseerror.mdx index c7bdd746..81393cc7 100644 --- a/docs/errors/requesttimeoutresponseerror.mdx +++ b/docs/errors/requesttimeoutresponseerror.mdx @@ -10,5 +10,5 @@ Request Timeout - Operation exceeded time limit | Field | Type | Required | Description | Example | | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | | `error` | [components.RequestTimeoutResponseErrorData](../components/requesttimeoutresponseerrordata.mdx) | :heavy_check_mark: | Error data for RequestTimeoutResponse | \{
"code": 408,
"message": "Operation timed out. Please try again later."
} | -| `openrouter_metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `openrouter_metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/errors/serviceunavailableresponseerror.mdx b/docs/errors/serviceunavailableresponseerror.mdx index 978785d1..102116c6 100644 --- a/docs/errors/serviceunavailableresponseerror.mdx +++ b/docs/errors/serviceunavailableresponseerror.mdx @@ -10,5 +10,5 @@ Service Unavailable - Service temporarily unavailable | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | | `error` | [components.ServiceUnavailableResponseErrorData](../components/serviceunavailableresponseerrordata.mdx) | :heavy_check_mark: | Error data for ServiceUnavailableResponse | \{
"code": 503,
"message": "Service temporarily unavailable"
} | -| `openrouter_metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `openrouter_metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/errors/toomanyrequestsresponseerror.mdx b/docs/errors/toomanyrequestsresponseerror.mdx index dae39dad..67bd342c 100644 --- a/docs/errors/toomanyrequestsresponseerror.mdx +++ b/docs/errors/toomanyrequestsresponseerror.mdx @@ -10,5 +10,5 @@ Too Many Requests - Rate limit exceeded | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | | `error` | [components.TooManyRequestsResponseErrorData](../components/toomanyrequestsresponseerrordata.mdx) | :heavy_check_mark: | Error data for TooManyRequestsResponse | \{
"code": 429,
"message": "Rate limit exceeded"
} | -| `openrouter_metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `openrouter_metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/errors/unauthorizedresponseerror.mdx b/docs/errors/unauthorizedresponseerror.mdx index 5a1e49f8..a24d0576 100644 --- a/docs/errors/unauthorizedresponseerror.mdx +++ b/docs/errors/unauthorizedresponseerror.mdx @@ -10,5 +10,5 @@ Unauthorized - Authentication required or invalid credentials | Field | Type | Required | Description | Example | | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | | `error` | [components.UnauthorizedResponseErrorData](../components/unauthorizedresponseerrordata.mdx) | :heavy_check_mark: | Error data for UnauthorizedResponse | \{
"code": 401,
"message": "Missing Authentication header"
} | -| `openrouter_metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `openrouter_metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/errors/unprocessableentityresponseerror.mdx b/docs/errors/unprocessableentityresponseerror.mdx index f8c3a25b..75813e9f 100644 --- a/docs/errors/unprocessableentityresponseerror.mdx +++ b/docs/errors/unprocessableentityresponseerror.mdx @@ -10,5 +10,5 @@ Unprocessable Entity - Semantic validation failure | Field | Type | Required | Description | Example | | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | | `error` | [components.UnprocessableEntityResponseErrorData](../components/unprocessableentityresponseerrordata.mdx) | :heavy_check_mark: | Error data for UnprocessableEntityResponse | \{
"code": 422,
"message": "Invalid argument"
} | -| `openrouter_metadata` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | N/A | | +| `openrouter_metadata` | Dict[str, *Any*] | :heavy_minus_sign: | N/A | | | `user_id` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/operations/getapprankingsrequest.mdx b/docs/operations/getapprankingsrequest.mdx index 48980600..fb3afc12 100644 --- a/docs/operations/getapprankingsrequest.mdx +++ b/docs/operations/getapprankingsrequest.mdx @@ -15,4 +15,4 @@ title: "GetAppRankingsRequest" | `start_date` | *Optional[str]* | :heavy_minus_sign: | 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`. | 2026-04-12 | | `end_date` | *Optional[str]* | :heavy_minus_sign: | 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. | 2026-05-11 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of apps to return (1-100). Defaults to 50. | 50 | -| `offset` | *Optional[int]* | :heavy_minus_sign: | 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`. | 0 | \ No newline at end of file +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | 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`. | 0 | \ No newline at end of file diff --git a/docs/operations/getmodelsrequest.mdx b/docs/operations/getmodelsrequest.mdx index 532a1ab9..3c93e9ac 100644 --- a/docs/operations/getmodelsrequest.mdx +++ b/docs/operations/getmodelsrequest.mdx @@ -9,7 +9,7 @@ title: "GetModelsRequest" | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned | 500 | | `category` | [Optional[operations.GetModelsCategory]](../operations/getmodelscategory.mdx) | :heavy_minus_sign: | Filter models by use case category | programming | | `supported_parameters` | *Optional[str]* | :heavy_minus_sign: | Filter models by supported parameter (comma-separated) | temperature | diff --git a/docs/operations/listbyokkeysrequest.mdx b/docs/operations/listbyokkeysrequest.mdx index ed0a6574..178868c3 100644 --- a/docs/operations/listbyokkeysrequest.mdx +++ b/docs/operations/listbyokkeysrequest.mdx @@ -9,7 +9,7 @@ title: "ListBYOKKeysRequest" | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | | `workspace_id` | *Optional[str]* | :heavy_minus_sign: | Optional workspace ID to filter by. Defaults to the authenticated entity's default workspace. | 550e8400-e29b-41d4-a716-446655440000 | | `provider` | [Optional[operations.Provider]](../operations/provider.mdx) | :heavy_minus_sign: | Optional provider slug to filter by (e.g. `openai`, `anthropic`, `amazon-bedrock`). | openai | \ No newline at end of file diff --git a/docs/operations/listembeddingsmodelsrequest.mdx b/docs/operations/listembeddingsmodelsrequest.mdx index 7e491482..ad3e91f1 100644 --- a/docs/operations/listembeddingsmodelsrequest.mdx +++ b/docs/operations/listembeddingsmodelsrequest.mdx @@ -9,5 +9,5 @@ title: "ListEmbeddingsModelsRequest" | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned | 500 | \ No newline at end of file diff --git a/docs/operations/listendpointsresponse.mdx b/docs/operations/listendpointsresponse.mdx index b3861b87..f5f6478e 100644 --- a/docs/operations/listendpointsresponse.mdx +++ b/docs/operations/listendpointsresponse.mdx @@ -7,6 +7,6 @@ Returns a list of endpoints ## Fields -| Field | Type | Required | Description | Example | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `data` | [components.ListEndpointsResponse](../components/listendpointsresponse.mdx) | :heavy_check_mark: | List of available endpoints for a model | \{
"architecture": \{
"input_modalities": [
"text"
],
"instruct_type": "chatml",
"modality": "text-\u003etext",
"output_modalities": [
"text"
],
"tokenizer": "GPT"
},
"created": 1692901234,
"description": "GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.",
"endpoints": [
\{
"context_length": 8192,
"latency_last_30m": \{
"p50": 0.25,
"p75": 0.35,
"p90": 0.48,
"p99": 0.85
},
"max_completion_tokens": 4096,
"max_prompt_tokens": 8192,
"model_name": "GPT-4",
"name": "OpenAI: GPT-4",
"pricing": \{
"completion": "0.00006",
"image": "0",
"prompt": "0.00003",
"request": "0"
},
"provider_name": "OpenAI",
"quantization": "fp16",
"status": "default",
"supported_parameters": [
"temperature",
"top_p",
"max_tokens",
"frequency_penalty",
"presence_penalty"
],
"supports_implicit_caching": true,
"tag": "openai",
"throughput_last_30m": \{
"p50": 45.2,
"p75": 38.5,
"p90": 28.3,
"p99": 15.1
},
"uptime_last_1d": 99.8,
"uptime_last_30m": 99.5,
"uptime_last_5m": 100
}
],
"id": "openai/gpt-4",
"name": "GPT-4"
} | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `data` | [components.ListEndpointsResponse](../components/listendpointsresponse.mdx) | :heavy_check_mark: | List of available endpoints for a model | \{
"architecture": \{
"input_modalities": [
"text"
],
"instruct_type": "chatml",
"modality": "text-\u003etext",
"output_modalities": [
"text"
],
"tokenizer": "GPT"
},
"created": 1692901234,
"description": "GPT-4 is a large multimodal model that can solve difficult problems with greater accuracy.",
"endpoints": [
\{
"context_length": 8192,
"latency_last_30m": \{
"p50": 0.25,
"p75": 0.35,
"p90": 0.48,
"p99": 0.85
},
"max_completion_tokens": 4096,
"max_prompt_tokens": 8192,
"model_id": "openai/gpt-4",
"model_name": "GPT-4",
"name": "OpenAI: GPT-4",
"pricing": \{
"completion": "0.00006",
"image": "0",
"prompt": "0.00003",
"request": "0"
},
"provider_name": "OpenAI",
"quantization": "fp16",
"status": 0,
"supported_parameters": [
"temperature",
"top_p",
"max_tokens",
"frequency_penalty",
"presence_penalty"
],
"supports_implicit_caching": true,
"tag": "openai",
"throughput_last_30m": \{
"p50": 45.2,
"p75": 38.5,
"p90": 28.3,
"p99": 15.1
},
"uptime_last_1d": 99.8,
"uptime_last_30m": 99.5,
"uptime_last_5m": 100
}
],
"id": "openai/gpt-4",
"name": "GPT-4"
} | \ No newline at end of file diff --git a/docs/operations/listguardrailkeyassignmentsrequest.mdx b/docs/operations/listguardrailkeyassignmentsrequest.mdx index 92b4303d..0197e6a8 100644 --- a/docs/operations/listguardrailkeyassignmentsrequest.mdx +++ b/docs/operations/listguardrailkeyassignmentsrequest.mdx @@ -10,5 +10,5 @@ title: "ListGuardrailKeyAssignmentsRequest" | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | | `id` | *str* | :heavy_check_mark: | The unique identifier of the guardrail | 550e8400-e29b-41d4-a716-446655440000 | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | \ No newline at end of file diff --git a/docs/operations/listguardrailmemberassignmentsrequest.mdx b/docs/operations/listguardrailmemberassignmentsrequest.mdx index 740af2e6..c7d2bdab 100644 --- a/docs/operations/listguardrailmemberassignmentsrequest.mdx +++ b/docs/operations/listguardrailmemberassignmentsrequest.mdx @@ -10,5 +10,5 @@ title: "ListGuardrailMemberAssignmentsRequest" | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | | `id` | *str* | :heavy_check_mark: | The unique identifier of the guardrail | 550e8400-e29b-41d4-a716-446655440000 | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | \ No newline at end of file diff --git a/docs/operations/listguardrailsrequest.mdx b/docs/operations/listguardrailsrequest.mdx index 285cb55c..465dde59 100644 --- a/docs/operations/listguardrailsrequest.mdx +++ b/docs/operations/listguardrailsrequest.mdx @@ -9,6 +9,6 @@ title: "ListGuardrailsRequest" | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | | `workspace_id` | *Optional[str]* | :heavy_minus_sign: | Filter guardrails by workspace ID. By default, guardrails in the default workspace are returned. | 0df9e665-d932-5740-b2c7-b52af166bc11 | \ No newline at end of file diff --git a/docs/operations/listkeyassignmentsrequest.mdx b/docs/operations/listkeyassignmentsrequest.mdx index 449ce29f..9ca68687 100644 --- a/docs/operations/listkeyassignmentsrequest.mdx +++ b/docs/operations/listkeyassignmentsrequest.mdx @@ -9,5 +9,5 @@ title: "ListKeyAssignmentsRequest" | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | \ No newline at end of file diff --git a/docs/operations/listmemberassignmentsrequest.mdx b/docs/operations/listmemberassignmentsrequest.mdx index c49bcf39..7215640e 100644 --- a/docs/operations/listmemberassignmentsrequest.mdx +++ b/docs/operations/listmemberassignmentsrequest.mdx @@ -9,5 +9,5 @@ title: "ListMemberAssignmentsRequest" | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | \ No newline at end of file diff --git a/docs/operations/listmodelsuserrequest.mdx b/docs/operations/listmodelsuserrequest.mdx index ca39aeab..5e2917bd 100644 --- a/docs/operations/listmodelsuserrequest.mdx +++ b/docs/operations/listmodelsuserrequest.mdx @@ -9,5 +9,5 @@ title: "ListModelsUserRequest" | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned | 500 | \ No newline at end of file diff --git a/docs/operations/listobservabilitydestinationsrequest.mdx b/docs/operations/listobservabilitydestinationsrequest.mdx index c9f43abc..939ce50a 100644 --- a/docs/operations/listobservabilitydestinationsrequest.mdx +++ b/docs/operations/listobservabilitydestinationsrequest.mdx @@ -9,6 +9,6 @@ title: "ListObservabilityDestinationsRequest" | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | | `workspace_id` | *Optional[str]* | :heavy_minus_sign: | Optional workspace ID to filter by. Defaults to the authenticated entity's default workspace. | 550e8400-e29b-41d4-a716-446655440000 | \ No newline at end of file diff --git a/docs/operations/listorganizationmembersrequest.mdx b/docs/operations/listorganizationmembersrequest.mdx index 8e2a8b90..b9c2c5a3 100644 --- a/docs/operations/listorganizationmembersrequest.mdx +++ b/docs/operations/listorganizationmembersrequest.mdx @@ -9,5 +9,5 @@ title: "ListOrganizationMembersRequest" | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | \ No newline at end of file diff --git a/docs/operations/listpresetsrequest.mdx b/docs/operations/listpresetsrequest.mdx index 165dbf2f..d3f380a3 100644 --- a/docs/operations/listpresetsrequest.mdx +++ b/docs/operations/listpresetsrequest.mdx @@ -9,5 +9,5 @@ title: "ListPresetsRequest" | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | \ No newline at end of file diff --git a/docs/operations/listpresetversionsrequest.mdx b/docs/operations/listpresetversionsrequest.mdx index 268fd9aa..f3350772 100644 --- a/docs/operations/listpresetversionsrequest.mdx +++ b/docs/operations/listpresetversionsrequest.mdx @@ -10,5 +10,5 @@ title: "ListPresetVersionsRequest" | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | | `slug` | *str* | :heavy_check_mark: | URL-safe slug identifying the preset. | my-preset | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | \ No newline at end of file diff --git a/docs/operations/listrequest.mdx b/docs/operations/listrequest.mdx index a48f6951..8e774abd 100644 --- a/docs/operations/listrequest.mdx +++ b/docs/operations/listrequest.mdx @@ -10,5 +10,5 @@ title: "ListRequest" | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | | `include_disabled` | *Optional[bool]* | :heavy_minus_sign: | Whether to include disabled API keys in the response | false | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of API keys to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of API keys to skip for pagination | 0 | | `workspace_id` | *Optional[str]* | :heavy_minus_sign: | Filter API keys by workspace ID. By default, keys in the default workspace are returned. | 0df9e665-d932-5740-b2c7-b52af166bc11 | \ No newline at end of file diff --git a/docs/operations/listworkspacemembersrequest.mdx b/docs/operations/listworkspacemembersrequest.mdx index fe553b32..0c97c81e 100644 --- a/docs/operations/listworkspacemembersrequest.mdx +++ b/docs/operations/listworkspacemembersrequest.mdx @@ -10,5 +10,5 @@ title: "ListWorkspaceMembersRequest" | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | | `id` | *str* | :heavy_check_mark: | The workspace ID (UUID) or slug | production | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | \ No newline at end of file diff --git a/docs/operations/listworkspacesrequest.mdx b/docs/operations/listworkspacesrequest.mdx index b188a1a7..0903d08e 100644 --- a/docs/operations/listworkspacesrequest.mdx +++ b/docs/operations/listworkspacesrequest.mdx @@ -9,5 +9,5 @@ title: "ListWorkspacesRequest" | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | \ No newline at end of file diff --git a/docs/operations/provider.mdx b/docs/operations/provider.mdx index 9d859c1b..bd7ec3fd 100644 --- a/docs/operations/provider.mdx +++ b/docs/operations/provider.mdx @@ -101,6 +101,7 @@ This is an open enum. Unrecognized values will not fail type checks. - `"stepfun"` - `"streamlake"` - `"switchpoint"` +- `"tencent"` - `"tenstorrent"` - `"together"` - `"upstage"` diff --git a/docs/sdks/apikeys/README.mdx b/docs/sdks/apikeys/README.mdx index e5b775ce..f741a326 100644 --- a/docs/sdks/apikeys/README.mdx +++ b/docs/sdks/apikeys/README.mdx @@ -95,7 +95,7 @@ with OpenRouter( | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | | `include_disabled` | *Optional[bool]* | :heavy_minus_sign: | Whether to include disabled API keys in the response | false | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of API keys to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of API keys to skip for pagination | 0 | | `workspace_id` | *Optional[str]* | :heavy_minus_sign: | Filter API keys by workspace ID. By default, keys in the default workspace are returned. | 0df9e665-d932-5740-b2c7-b52af166bc11 | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | diff --git a/docs/sdks/byok/README.mdx b/docs/sdks/byok/README.mdx index 513bb72e..e813aada 100644 --- a/docs/sdks/byok/README.mdx +++ b/docs/sdks/byok/README.mdx @@ -49,7 +49,7 @@ with OpenRouter( | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | | `workspace_id` | *Optional[str]* | :heavy_minus_sign: | Optional workspace ID to filter by. Defaults to the authenticated entity's default workspace. | 550e8400-e29b-41d4-a716-446655440000 | | `provider` | [Optional[operations.Provider]](../../operations/provider.mdx) | :heavy_minus_sign: | Optional provider slug to filter by (e.g. `openai`, `anthropic`, `amazon-bedrock`). | openai | diff --git a/docs/sdks/chat/README.mdx b/docs/sdks/chat/README.mdx index ca7fbe9c..a5130d1d 100644 --- a/docs/sdks/chat/README.mdx +++ b/docs/sdks/chat/README.mdx @@ -111,7 +111,7 @@ with OpenRouter( | `seed` | *OptionalNullable[int]* | :heavy_minus_sign: | Random seed for deterministic outputs | 42 | | `service_tier` | [OptionalNullable[components.ChatRequestServiceTier]](../../components/chatrequestservicetier.mdx) | :heavy_minus_sign: | The service tier to use for processing this request. | auto | | `session_id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier for grouping related requests (e.g., a conversation or agent workflow). When provided, OpenRouter uses it as the sticky routing key, routing all requests in the session to the same provider to maximize prompt cache hits. Also used for observability grouping. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters. | | -| `stop` | [OptionalNullable[components.Stop]](../../components/stop.mdx) | :heavy_minus_sign: | Stop sequences (up to 4) | [
""
] | +| `stop` | [OptionalNullable[components.Stop]](../../components/stop.mdx) | :heavy_minus_sign: | Stop sequences (up to 4) | [
"\n"
] | | `stop_server_tools_when` | List[[components.StopServerToolsWhenCondition](../../components/stopservertoolswhencondition.mdx)] | :heavy_minus_sign: | Stop conditions for the server-tool agent loop. Any condition firing halts the loop (OR logic). When set, this overrides `max_tool_calls`. | [
\{
"step_count": 5,
"type": "step_count_is"
},
\{
"max_cost_in_dollars": 0.5,
"type": "max_cost"
}
] | | `stream` | *Optional[bool]* | :heavy_minus_sign: | Enable streaming response | false | | `stream_options` | [OptionalNullable[components.ChatStreamOptions]](../../components/chatstreamoptions.mdx) | :heavy_minus_sign: | Streaming configuration options | \{
"include_usage": true
} | diff --git a/docs/sdks/datasets/README.mdx b/docs/sdks/datasets/README.mdx index ef43241c..fe3a93c6 100644 --- a/docs/sdks/datasets/README.mdx +++ b/docs/sdks/datasets/README.mdx @@ -74,7 +74,7 @@ with OpenRouter( | `start_date` | *Optional[str]* | :heavy_minus_sign: | 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`. | 2026-04-12 | | `end_date` | *Optional[str]* | :heavy_minus_sign: | 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. | 2026-05-11 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of apps to return (1-100). Defaults to 50. | 50 | -| `offset` | *Optional[int]* | :heavy_minus_sign: | 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`. | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | 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`. | 0 | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | ### Response diff --git a/docs/sdks/embeddings/README.mdx b/docs/sdks/embeddings/README.mdx index 0ec380e6..23ecba4f 100644 --- a/docs/sdks/embeddings/README.mdx +++ b/docs/sdks/embeddings/README.mdx @@ -107,7 +107,7 @@ with OpenRouter( | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned | 500 | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | diff --git a/docs/sdks/guardrails/README.mdx b/docs/sdks/guardrails/README.mdx index db67983c..b24fc161 100644 --- a/docs/sdks/guardrails/README.mdx +++ b/docs/sdks/guardrails/README.mdx @@ -57,7 +57,7 @@ with OpenRouter( | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | | `workspace_id` | *Optional[str]* | :heavy_minus_sign: | Filter guardrails by workspace ID. By default, guardrails in the default workspace are returned. | 0df9e665-d932-5740-b2c7-b52af166bc11 | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | @@ -339,7 +339,7 @@ with OpenRouter( | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | @@ -495,7 +495,7 @@ with OpenRouter( | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | @@ -652,7 +652,7 @@ with OpenRouter( | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | @@ -702,7 +702,7 @@ with OpenRouter( | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | diff --git a/docs/sdks/models/README.mdx b/docs/sdks/models/README.mdx index dd4b5425..ef07349c 100644 --- a/docs/sdks/models/README.mdx +++ b/docs/sdks/models/README.mdx @@ -96,7 +96,7 @@ with OpenRouter( | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned | 500 | | `category` | [Optional[operations.GetModelsCategory]](../../operations/getmodelscategory.mdx) | :heavy_minus_sign: | Filter models by use case category | programming | | `supported_parameters` | *Optional[str]* | :heavy_minus_sign: | Filter models by supported parameter (comma-separated) | temperature | @@ -222,7 +222,7 @@ with OpenRouter( | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned | 500 | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | diff --git a/docs/sdks/observability/README.mdx b/docs/sdks/observability/README.mdx index fb37fc07..6a36341f 100644 --- a/docs/sdks/observability/README.mdx +++ b/docs/sdks/observability/README.mdx @@ -49,7 +49,7 @@ with OpenRouter( | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | | `workspace_id` | *Optional[str]* | :heavy_minus_sign: | Optional workspace ID to filter by. Defaults to the authenticated entity's default workspace. | 550e8400-e29b-41d4-a716-446655440000 | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | @@ -99,7 +99,7 @@ with OpenRouter( | Parameter | Type | Required | Description | Example | | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config` | Dict[str, *Nullable[Any]*] | :heavy_check_mark: | Provider-specific configuration. The shape depends on `type` and is validated server-side. | \{
"baseUrl": "https://us.cloud.langfuse.com",
"publicKey": "pk-l...EfGh",
"secretKey": "sk-l...AbCd"
} | +| `config` | Dict[str, *Any*] | :heavy_check_mark: | Provider-specific configuration. The shape depends on `type` and is validated server-side. | \{
"baseUrl": "https://us.cloud.langfuse.com",
"publicKey": "pk-l...EfGh",
"secretKey": "sk-l...AbCd"
} | | `name` | *str* | :heavy_check_mark: | Human-readable name for the destination. | Production Langfuse | | `type` | [components.CreateObservabilityDestinationRequestType](../../components/createobservabilitydestinationrequesttype.mdx) | :heavy_check_mark: | The destination type. Only stable destination types are accepted. | langfuse | | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | @@ -258,7 +258,7 @@ with OpenRouter( | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | | `api_key_hashes` | List[*str*] | :heavy_minus_sign: | Optional allowlist of OpenRouter API key hashes. `null` clears the filter (all keys). Omitting leaves the current value. Must contain at least one hash if provided. | null | -| `config` | Dict[str, *Nullable[Any]*] | :heavy_minus_sign: | Provider-specific configuration fields to update. Masked values are ignored; unset fields keep their current value. | \{
"baseUrl": "https://us.cloud.langfuse.com",
"publicKey": "pk-l...EfGh",
"secretKey": "sk-l...AbCd"
} | +| `config` | Dict[str, *Any*] | :heavy_minus_sign: | Provider-specific configuration fields to update. Masked values are ignored; unset fields keep their current value. | \{
"baseUrl": "https://us.cloud.langfuse.com",
"publicKey": "pk-l...EfGh",
"secretKey": "sk-l...AbCd"
} | | `enabled` | *Optional[bool]* | :heavy_minus_sign: | Whether the destination is enabled. | true | | `filter_rules` | [OptionalNullable[components.ObservabilityFilterRulesConfigNullable]](../../components/observabilityfilterrulesconfignullable.mdx) | :heavy_minus_sign: | N/A | null | | `name` | *Optional[str]* | :heavy_minus_sign: | Human-readable name for the destination. | Production Langfuse | diff --git a/docs/sdks/organization/README.mdx b/docs/sdks/organization/README.mdx index 32a291cb..e45eea9a 100644 --- a/docs/sdks/organization/README.mdx +++ b/docs/sdks/organization/README.mdx @@ -45,7 +45,7 @@ with OpenRouter( | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | diff --git a/docs/sdks/presets/README.mdx b/docs/sdks/presets/README.mdx index 5b346949..530e9313 100644 --- a/docs/sdks/presets/README.mdx +++ b/docs/sdks/presets/README.mdx @@ -51,7 +51,7 @@ with OpenRouter( | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | @@ -187,7 +187,7 @@ with OpenRouter( | `seed` | *OptionalNullable[int]* | :heavy_minus_sign: | Random seed for deterministic outputs | 42 | | `service_tier` | [OptionalNullable[components.ChatRequestServiceTier]](../../components/chatrequestservicetier.mdx) | :heavy_minus_sign: | The service tier to use for processing this request. | auto | | `session_id` | *Optional[str]* | :heavy_minus_sign: | A unique identifier for grouping related requests (e.g., a conversation or agent workflow). When provided, OpenRouter uses it as the sticky routing key, routing all requests in the session to the same provider to maximize prompt cache hits. Also used for observability grouping. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters. | | -| `stop` | [OptionalNullable[components.Stop]](../../components/stop.mdx) | :heavy_minus_sign: | Stop sequences (up to 4) | [
""
] | +| `stop` | [OptionalNullable[components.Stop]](../../components/stop.mdx) | :heavy_minus_sign: | Stop sequences (up to 4) | [
"\n"
] | | `stop_server_tools_when` | List[[components.StopServerToolsWhenCondition](../../components/stopservertoolswhencondition.mdx)] | :heavy_minus_sign: | Stop conditions for the server-tool agent loop. Any condition firing halts the loop (OR logic). When set, this overrides `max_tool_calls`. | [
\{
"step_count": 5,
"type": "step_count_is"
},
\{
"max_cost_in_dollars": 0.5,
"type": "max_cost"
}
] | | `stream` | *Optional[bool]* | :heavy_minus_sign: | Enable streaming response | false | | `stream_options` | [OptionalNullable[components.ChatStreamOptions]](../../components/chatstreamoptions.mdx) | :heavy_minus_sign: | Streaming configuration options | \{
"include_usage": true
} | @@ -350,7 +350,7 @@ with OpenRouter( | `parallel_tool_calls` | *OptionalNullable[bool]* | :heavy_minus_sign: | N/A | | | `plugins` | List[[components.ResponsesRequestPlugin](../../components/responsesrequestplugin.mdx)] | :heavy_minus_sign: | Plugins you want to enable for this request, including their settings. | | | `presence_penalty` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | | -| `previous_response_id` | *OptionalNullable[Any]* | :heavy_minus_sign: | Not supported. The Responses API is stateless: no responses are stored, so a previous response cannot be referenced. Requests with a non-null value are rejected with a 400 error. Send the full conversation history in `input` instead. | | +| `previous_response_id` | *Optional[Any]* | :heavy_minus_sign: | Not supported. The Responses API is stateless: no responses are stored, so a previous response cannot be referenced. Requests with a non-null value are rejected with a 400 error. Send the full conversation history in `input` instead. | | | `prompt` | [OptionalNullable[components.StoredPromptTemplate]](../../components/storedprompttemplate.mdx) | :heavy_minus_sign: | N/A | \{
"id": "prompt-abc123",
"variables": \{
"name": "John"
}
} | | `prompt_cache_key` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | | `prompt_cache_options` | [OptionalNullable[components.PromptCacheOptions]](../../components/promptcacheoptions.mdx) | :heavy_minus_sign: | Request-level prompt-cache controls. `mode: "explicit"` disables OpenAI-managed breakpoints so only blocks marked with `prompt_cache_breakpoint` are cached. Only supported by OpenAI GPT-5.6 and newer. | \{
"mode": "explicit",
"ttl": "30m"
} | @@ -424,7 +424,7 @@ with OpenRouter( | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | diff --git a/docs/sdks/responses/README.mdx b/docs/sdks/responses/README.mdx index 904dafb2..e0932dbc 100644 --- a/docs/sdks/responses/README.mdx +++ b/docs/sdks/responses/README.mdx @@ -85,7 +85,7 @@ with OpenRouter( | `parallel_tool_calls` | *OptionalNullable[bool]* | :heavy_minus_sign: | N/A | | | `plugins` | List[[components.ResponsesRequestPlugin](../../components/responsesrequestplugin.mdx)] | :heavy_minus_sign: | Plugins you want to enable for this request, including their settings. | | | `presence_penalty` | *OptionalNullable[float]* | :heavy_minus_sign: | N/A | | -| `previous_response_id` | *OptionalNullable[Any]* | :heavy_minus_sign: | Not supported. The Responses API is stateless: no responses are stored, so a previous response cannot be referenced. Requests with a non-null value are rejected with a 400 error. Send the full conversation history in `input` instead. | | +| `previous_response_id` | *Optional[Any]* | :heavy_minus_sign: | Not supported. The Responses API is stateless: no responses are stored, so a previous response cannot be referenced. Requests with a non-null value are rejected with a 400 error. Send the full conversation history in `input` instead. | | | `prompt` | [OptionalNullable[components.StoredPromptTemplate]](../../components/storedprompttemplate.mdx) | :heavy_minus_sign: | N/A | \{
"id": "prompt-abc123",
"variables": \{
"name": "John"
}
} | | `prompt_cache_key` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A | | | `prompt_cache_options` | [OptionalNullable[components.PromptCacheOptions]](../../components/promptcacheoptions.mdx) | :heavy_minus_sign: | Request-level prompt-cache controls. `mode: "explicit"` disables OpenAI-managed breakpoints so only blocks marked with `prompt_cache_breakpoint` are cached. Only supported by OpenAI GPT-5.6 and newer. | \{
"mode": "explicit",
"ttl": "30m"
} | diff --git a/docs/sdks/workspaces/README.mdx b/docs/sdks/workspaces/README.mdx index 0c43dff0..137da1dc 100644 --- a/docs/sdks/workspaces/README.mdx +++ b/docs/sdks/workspaces/README.mdx @@ -55,7 +55,7 @@ with OpenRouter( | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | @@ -472,7 +472,7 @@ with OpenRouter( | `http_referer` | *Optional[str]* | :heavy_minus_sign: | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `x_open_router_title` | *Optional[str]* | :heavy_minus_sign: | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `x_open_router_categories` | *Optional[str]* | :heavy_minus_sign: | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `offset` | *Optional[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | +| `offset` | *OptionalNullable[int]* | :heavy_minus_sign: | Number of records to skip for pagination | 0 | | `limit` | *Optional[int]* | :heavy_minus_sign: | Maximum number of records to return (max 100) | 50 | | `retries` | [Optional[utils.RetryConfig]](../../models/utils/retryconfig.mdx) | :heavy_minus_sign: | Configuration to override the default retry behavior of the client. | | diff --git a/pyproject.toml b/pyproject.toml index 6c72c41e..fdc023cd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "openrouter" -version = "0.11.38" +version = "0.11.39" description = "Official Python Client SDK for OpenRouter." authors = [{ name = "OpenRouter" },] readme = "README-PYPI.md" diff --git a/src/openrouter/_version.py b/src/openrouter/_version.py index 20de112c..243368c8 100644 --- a/src/openrouter/_version.py +++ b/src/openrouter/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "openrouter" -__version__: str = "0.11.38" +__version__: str = "0.11.39" __openapi_doc_version__: str = "1.0.0" __gen_version__: str = "2.914.0" -__user_agent__: str = "speakeasy-sdk/python 0.11.38 2.914.0 1.0.0 openrouter" +__user_agent__: str = "speakeasy-sdk/python 0.11.39 2.914.0 1.0.0 openrouter" try: if __package__ is not None: diff --git a/src/openrouter/api_keys.py b/src/openrouter/api_keys.py index 76eafbc6..09084e39 100644 --- a/src/openrouter/api_keys.py +++ b/src/openrouter/api_keys.py @@ -260,7 +260,7 @@ def list( x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, include_disabled: Optional[bool] = None, - offset: Optional[int] = None, + offset: OptionalNullable[int] = UNSET, workspace_id: Optional[str] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -394,7 +394,7 @@ async def list_async( x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, include_disabled: Optional[bool] = None, - offset: Optional[int] = None, + offset: OptionalNullable[int] = UNSET, workspace_id: Optional[str] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, diff --git a/src/openrouter/byok.py b/src/openrouter/byok.py index 08b177b0..213f83f9 100644 --- a/src/openrouter/byok.py +++ b/src/openrouter/byok.py @@ -19,7 +19,7 @@ def list( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, workspace_id: Optional[str] = None, provider: Optional[operations.Provider] = None, @@ -185,7 +185,7 @@ async def list_async( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, workspace_id: Optional[str] = None, provider: Optional[operations.Provider] = None, diff --git a/src/openrouter/components/__init__.py b/src/openrouter/components/__init__.py index feb81723..0e0ce544 100644 --- a/src/openrouter/components/__init__.py +++ b/src/openrouter/components/__init__.py @@ -14,10 +14,10 @@ AdditionalToolsItemTool, AdditionalToolsItemToolFunction, AdditionalToolsItemToolFunctionTypedDict, + AdditionalToolsItemToolType, AdditionalToolsItemToolTypedDict, AdditionalToolsItemToolUnion, AdditionalToolsItemToolUnionTypedDict, - AdditionalToolsItemTypeFunction, AdditionalToolsItemTypedDict, TypeAdditionalTools, ) @@ -995,7 +995,6 @@ FunctionCallOutputItemOutputUnion1TypedDict, FunctionCallOutputItemOutputUnion2, FunctionCallOutputItemOutputUnion2TypedDict, - FunctionCallOutputItemStatus, FunctionCallOutputItemTypeFunctionCallOutput, FunctionCallOutputItemTypeInputImage, FunctionCallOutputItemTypedDict, @@ -1063,6 +1062,12 @@ FusionPluginTool, FusionPluginToolTypedDict, FusionPluginTypedDict, + Parameters1, + Parameters1TypedDict, + Parameters2, + Parameters2TypedDict, + Parameters3, + Parameters3TypedDict, PresetEnum, ) from .fusionservertool_openrouter import ( @@ -1363,7 +1368,6 @@ ArchitectureTypedDict, ListEndpointsResponse, ListEndpointsResponseTypedDict, - Tokenizer, ) from .listguardrailsresponse import ( ListGuardrailsResponse, @@ -1408,7 +1412,6 @@ ) from .localshellcalloutputitem import ( LocalShellCallOutputItem, - LocalShellCallOutputItemStatus, LocalShellCallOutputItemType, LocalShellCallOutputItemTypedDict, ) @@ -1515,8 +1518,6 @@ TypeTokens, ) from .messagesrequest import ( - Caching, - CachingTypedDict, ClearToolInputs, ClearToolInputsTypedDict, ContextManagement, @@ -1584,7 +1585,6 @@ ToolTextEditor20250124, ToolTextEditor20250124TypedDict, ToolTypeCustom, - ToolTypeEphemeral, ToolWebSearch20250305, ToolWebSearch20250305TypedDict, ToolWebSearch20260209, @@ -1828,7 +1828,6 @@ OpenAIResponseFunctionToolCallOutputOutput1TypedDict, OpenAIResponseFunctionToolCallOutputOutput2, OpenAIResponseFunctionToolCallOutputOutput2TypedDict, - OpenAIResponseFunctionToolCallOutputStatus, OpenAIResponseFunctionToolCallOutputType, OpenAIResponseFunctionToolCallOutputTypedDict, UnknownOpenAIResponseFunctionToolCallOutputOutput1, @@ -1891,6 +1890,8 @@ OpenResponsesInProgressEventTypedDict, ) from .openresponsesresult import ( + InputTokensDetails, + InputTokensDetailsTypedDict, OpenResponsesResult, OpenResponsesResultObject, OpenResponsesResultToolFunction, @@ -1899,7 +1900,13 @@ OpenResponsesResultToolUnionTypedDict, OpenResponsesResultType, OpenResponsesResultTypedDict, + OutputTokensDetails, + OutputTokensDetailsTypedDict, UnknownOpenResponsesResultToolUnion, + Usage, + UsageCostDetails, + UsageCostDetailsTypedDict, + UsageTypedDict, ) from .openroutermetadata import OpenRouterMetadata, OpenRouterMetadataTypedDict from .openrouterwebsearchservertool import ( @@ -2281,7 +2288,6 @@ Pricing, PricingTypedDict, PublicEndpoint, - PublicEndpointQuantization, PublicEndpointTypedDict, ) from .publicpricing import PublicPricing, PublicPricingTypedDict @@ -2301,7 +2307,6 @@ RankingsDailyResponse, RankingsDailyResponseTypedDict, ) - from .reasoningconfig import ReasoningConfig, ReasoningConfigTypedDict from .reasoningcontext import ReasoningContext from .reasoningdeltaevent import ( ReasoningDeltaEvent, @@ -2417,6 +2422,8 @@ ResponsesErrorFieldTypedDict, ) from .responsesrequest import ( + ReasoningConfig, + ReasoningConfigTypedDict, ResponsesRequest, ResponsesRequestPlugin, ResponsesRequestPluginTypedDict, @@ -2459,7 +2466,6 @@ ShellCallItem, ShellCallItemAction, ShellCallItemActionTypedDict, - ShellCallItemStatus, ShellCallItemType, ShellCallItemTypedDict, ) @@ -2467,7 +2473,6 @@ ShellCallOutputItem, ShellCallOutputItemOutput, ShellCallOutputItemOutputTypedDict, - ShellCallOutputItemStatus, ShellCallOutputItemType, ShellCallOutputItemTypedDict, ) @@ -2727,16 +2732,6 @@ UpsertWorkspaceBudgetResponseTypedDict, ) from .urlcitation import URLCitation, URLCitationType, URLCitationTypedDict - from .usage import ( - InputTokensDetails, - InputTokensDetailsTypedDict, - OutputTokensDetails, - OutputTokensDetailsTypedDict, - Usage, - UsageCostDetails, - UsageCostDetailsTypedDict, - UsageTypedDict, - ) from .videogenerationrequest import ( VideoGenerationRequest, VideoGenerationRequestAspectRatio, @@ -2878,10 +2873,10 @@ "AdditionalToolsItemTool", "AdditionalToolsItemToolFunction", "AdditionalToolsItemToolFunctionTypedDict", + "AdditionalToolsItemToolType", "AdditionalToolsItemToolTypedDict", "AdditionalToolsItemToolUnion", "AdditionalToolsItemToolUnionTypedDict", - "AdditionalToolsItemTypeFunction", "AdditionalToolsItemTypedDict", "AdvisorNestedTool", "AdvisorNestedToolTypedDict", @@ -3129,8 +3124,6 @@ "BulkUnassignMembersResponse", "BulkUnassignMembersResponseTypedDict", "By", - "Caching", - "CachingTypedDict", "CapabilityDescriptor", "CapabilityDescriptorTypedDict", "Category", @@ -3596,7 +3589,6 @@ "FunctionCallOutputItemOutputUnion1TypedDict", "FunctionCallOutputItemOutputUnion2", "FunctionCallOutputItemOutputUnion2TypedDict", - "FunctionCallOutputItemStatus", "FunctionCallOutputItemTypeFunctionCallOutput", "FunctionCallOutputItemTypeInputImage", "FunctionCallOutputItemTypedDict", @@ -3891,7 +3883,6 @@ "LocalShellCallItemActionTypedDict", "LocalShellCallItemTypedDict", "LocalShellCallOutputItem", - "LocalShellCallOutputItemStatus", "LocalShellCallOutputItemType", "LocalShellCallOutputItemTypedDict", "Logic", @@ -4117,7 +4108,6 @@ "OpenAIResponseFunctionToolCallOutputOutput1TypedDict", "OpenAIResponseFunctionToolCallOutputOutput2", "OpenAIResponseFunctionToolCallOutputOutput2TypedDict", - "OpenAIResponseFunctionToolCallOutputStatus", "OpenAIResponseFunctionToolCallOutputType", "OpenAIResponseFunctionToolCallOutputTypedDict", "OpenAIResponseFunctionToolCallType", @@ -4344,6 +4334,12 @@ "PDFParserOptions", "PDFParserOptionsTypedDict", "Parameter", + "Parameters1", + "Parameters1TypedDict", + "Parameters2", + "Parameters2TypedDict", + "Parameters3", + "Parameters3TypedDict", "ParetoRouterPlugin", "ParetoRouterPluginID", "ParetoRouterPluginTypedDict", @@ -4430,7 +4426,6 @@ "ProviderSortConfig", "ProviderSortConfigTypedDict", "PublicEndpoint", - "PublicEndpointQuantization", "PublicEndpointTypedDict", "PublicPricing", "PublicPricingTypedDict", @@ -4587,13 +4582,11 @@ "ShellCallItem", "ShellCallItemAction", "ShellCallItemActionTypedDict", - "ShellCallItemStatus", "ShellCallItemType", "ShellCallItemTypedDict", "ShellCallOutputItem", "ShellCallOutputItemOutput", "ShellCallOutputItemOutputTypedDict", - "ShellCallOutputItemStatus", "ShellCallOutputItemType", "ShellCallOutputItemTypedDict", "ShellCallStatus", @@ -4714,7 +4707,6 @@ "ThinkingTypedDict", "Timings", "TimingsTypedDict", - "Tokenizer", "TooManyRequestsResponseErrorData", "TooManyRequestsResponseErrorDataTypedDict", "ToolAdvisor20260301", @@ -4741,7 +4733,6 @@ "ToolTextEditor20250124", "ToolTextEditor20250124TypedDict", "ToolTypeCustom", - "ToolTypeEphemeral", "ToolWebSearch20250305", "ToolWebSearch20250305TypedDict", "ToolWebSearch20260209", @@ -4964,10 +4955,10 @@ "AdditionalToolsItemTool": ".additionaltoolsitem", "AdditionalToolsItemToolFunction": ".additionaltoolsitem", "AdditionalToolsItemToolFunctionTypedDict": ".additionaltoolsitem", + "AdditionalToolsItemToolType": ".additionaltoolsitem", "AdditionalToolsItemToolTypedDict": ".additionaltoolsitem", "AdditionalToolsItemToolUnion": ".additionaltoolsitem", "AdditionalToolsItemToolUnionTypedDict": ".additionaltoolsitem", - "AdditionalToolsItemTypeFunction": ".additionaltoolsitem", "AdditionalToolsItemTypedDict": ".additionaltoolsitem", "TypeAdditionalTools": ".additionaltoolsitem", "AdvisorNestedTool": ".advisornestedtool", @@ -5656,7 +5647,6 @@ "FunctionCallOutputItemOutputUnion1TypedDict": ".functioncalloutputitem", "FunctionCallOutputItemOutputUnion2": ".functioncalloutputitem", "FunctionCallOutputItemOutputUnion2TypedDict": ".functioncalloutputitem", - "FunctionCallOutputItemStatus": ".functioncalloutputitem", "FunctionCallOutputItemTypeFunctionCallOutput": ".functioncalloutputitem", "FunctionCallOutputItemTypeInputImage": ".functioncalloutputitem", "FunctionCallOutputItemTypedDict": ".functioncalloutputitem", @@ -5702,6 +5692,12 @@ "FusionPluginTool": ".fusionplugin", "FusionPluginToolTypedDict": ".fusionplugin", "FusionPluginTypedDict": ".fusionplugin", + "Parameters1": ".fusionplugin", + "Parameters1TypedDict": ".fusionplugin", + "Parameters2": ".fusionplugin", + "Parameters2TypedDict": ".fusionplugin", + "Parameters3": ".fusionplugin", + "Parameters3TypedDict": ".fusionplugin", "PresetEnum": ".fusionplugin", "FusionServerToolOpenRouter": ".fusionservertool_openrouter", "FusionServerToolOpenRouterType": ".fusionservertool_openrouter", @@ -5937,7 +5933,6 @@ "ArchitectureTypedDict": ".listendpointsresponse", "ListEndpointsResponse": ".listendpointsresponse", "ListEndpointsResponseTypedDict": ".listendpointsresponse", - "Tokenizer": ".listendpointsresponse", "ListGuardrailsResponse": ".listguardrailsresponse", "ListGuardrailsResponseTypedDict": ".listguardrailsresponse", "ListKeyAssignmentsResponse": ".listkeyassignmentsresponse", @@ -5963,7 +5958,6 @@ "TypeExec": ".localshellcallitem", "TypeLocalShellCall": ".localshellcallitem", "LocalShellCallOutputItem": ".localshellcalloutputitem", - "LocalShellCallOutputItemStatus": ".localshellcalloutputitem", "LocalShellCallOutputItemType": ".localshellcalloutputitem", "LocalShellCallOutputItemTypedDict": ".localshellcalloutputitem", "McpApprovalRequestItem": ".mcpapprovalrequestitem", @@ -6055,8 +6049,6 @@ "TaskBudget": ".messagesoutputconfig", "TaskBudgetTypedDict": ".messagesoutputconfig", "TypeTokens": ".messagesoutputconfig", - "Caching": ".messagesrequest", - "CachingTypedDict": ".messagesrequest", "ClearToolInputs": ".messagesrequest", "ClearToolInputsTypedDict": ".messagesrequest", "ContextManagement": ".messagesrequest", @@ -6124,7 +6116,6 @@ "ToolTextEditor20250124": ".messagesrequest", "ToolTextEditor20250124TypedDict": ".messagesrequest", "ToolTypeCustom": ".messagesrequest", - "ToolTypeEphemeral": ".messagesrequest", "ToolWebSearch20250305": ".messagesrequest", "ToolWebSearch20250305TypedDict": ".messagesrequest", "ToolWebSearch20260209": ".messagesrequest", @@ -6312,7 +6303,6 @@ "OpenAIResponseFunctionToolCallOutputOutput1TypedDict": ".openairesponsefunctiontoolcalloutput", "OpenAIResponseFunctionToolCallOutputOutput2": ".openairesponsefunctiontoolcalloutput", "OpenAIResponseFunctionToolCallOutputOutput2TypedDict": ".openairesponsefunctiontoolcalloutput", - "OpenAIResponseFunctionToolCallOutputStatus": ".openairesponsefunctiontoolcalloutput", "OpenAIResponseFunctionToolCallOutputType": ".openairesponsefunctiontoolcalloutput", "OpenAIResponseFunctionToolCallOutputTypedDict": ".openairesponsefunctiontoolcalloutput", "UnknownOpenAIResponseFunctionToolCallOutputOutput1": ".openairesponsefunctiontoolcalloutput", @@ -6361,6 +6351,8 @@ "OpenResponsesInProgressEvent": ".openresponsesinprogressevent", "OpenResponsesInProgressEventType": ".openresponsesinprogressevent", "OpenResponsesInProgressEventTypedDict": ".openresponsesinprogressevent", + "InputTokensDetails": ".openresponsesresult", + "InputTokensDetailsTypedDict": ".openresponsesresult", "OpenResponsesResult": ".openresponsesresult", "OpenResponsesResultObject": ".openresponsesresult", "OpenResponsesResultToolFunction": ".openresponsesresult", @@ -6369,7 +6361,13 @@ "OpenResponsesResultToolUnionTypedDict": ".openresponsesresult", "OpenResponsesResultType": ".openresponsesresult", "OpenResponsesResultTypedDict": ".openresponsesresult", + "OutputTokensDetails": ".openresponsesresult", + "OutputTokensDetailsTypedDict": ".openresponsesresult", "UnknownOpenResponsesResultToolUnion": ".openresponsesresult", + "Usage": ".openresponsesresult", + "UsageCostDetails": ".openresponsesresult", + "UsageCostDetailsTypedDict": ".openresponsesresult", + "UsageTypedDict": ".openresponsesresult", "OpenRouterMetadata": ".openroutermetadata", "OpenRouterMetadataTypedDict": ".openroutermetadata", "OpenRouterWebSearchServerTool": ".openrouterwebsearchservertool", @@ -6654,7 +6652,6 @@ "Pricing": ".publicendpoint", "PricingTypedDict": ".publicendpoint", "PublicEndpoint": ".publicendpoint", - "PublicEndpointQuantization": ".publicendpoint", "PublicEndpointTypedDict": ".publicendpoint", "PublicPricing": ".publicpricing", "PublicPricingTypedDict": ".publicpricing", @@ -6669,8 +6666,6 @@ "RankingsDailyMetaVersion": ".rankingsdailymeta", "RankingsDailyResponse": ".rankingsdailyresponse", "RankingsDailyResponseTypedDict": ".rankingsdailyresponse", - "ReasoningConfig": ".reasoningconfig", - "ReasoningConfigTypedDict": ".reasoningconfig", "ReasoningContext": ".reasoningcontext", "ReasoningDeltaEvent": ".reasoningdeltaevent", "ReasoningDeltaEventType": ".reasoningdeltaevent", @@ -6745,6 +6740,8 @@ "Code": ".responseserrorfield", "ResponsesErrorField": ".responseserrorfield", "ResponsesErrorFieldTypedDict": ".responseserrorfield", + "ReasoningConfig": ".responsesrequest", + "ReasoningConfigTypedDict": ".responsesrequest", "ResponsesRequest": ".responsesrequest", "ResponsesRequestPlugin": ".responsesrequest", "ResponsesRequestPluginTypedDict": ".responsesrequest", @@ -6778,13 +6775,11 @@ "ShellCallItem": ".shellcallitem", "ShellCallItemAction": ".shellcallitem", "ShellCallItemActionTypedDict": ".shellcallitem", - "ShellCallItemStatus": ".shellcallitem", "ShellCallItemType": ".shellcallitem", "ShellCallItemTypedDict": ".shellcallitem", "ShellCallOutputItem": ".shellcalloutputitem", "ShellCallOutputItemOutput": ".shellcalloutputitem", "ShellCallOutputItemOutputTypedDict": ".shellcalloutputitem", - "ShellCallOutputItemStatus": ".shellcalloutputitem", "ShellCallOutputItemType": ".shellcalloutputitem", "ShellCallOutputItemTypedDict": ".shellcalloutputitem", "ShellCallStatus": ".shellcallstatus", @@ -6960,14 +6955,6 @@ "URLCitation": ".urlcitation", "URLCitationType": ".urlcitation", "URLCitationTypedDict": ".urlcitation", - "InputTokensDetails": ".usage", - "InputTokensDetailsTypedDict": ".usage", - "OutputTokensDetails": ".usage", - "OutputTokensDetailsTypedDict": ".usage", - "Usage": ".usage", - "UsageCostDetails": ".usage", - "UsageCostDetailsTypedDict": ".usage", - "UsageTypedDict": ".usage", "VideoGenerationRequest": ".videogenerationrequest", "VideoGenerationRequestAspectRatio": ".videogenerationrequest", "VideoGenerationRequestOptions": ".videogenerationrequest", diff --git a/src/openrouter/components/additionaltoolsitem.py b/src/openrouter/components/additionaltoolsitem.py index 04a1bdb7..2cef174a 100644 --- a/src/openrouter/components/additionaltoolsitem.py +++ b/src/openrouter/components/additionaltoolsitem.py @@ -103,7 +103,7 @@ class AdditionalToolsItemTool(BaseModel): model_config = ConfigDict( populate_by_name=True, arbitrary_types_allowed=True, extra="allow" ) - __pydantic_extra__: Dict[str, Nullable[Any]] = pydantic.Field(init=False) + __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False) type: str @@ -116,15 +116,15 @@ def additional_properties(self, value): self.__pydantic_extra__ = value # pyright: ignore[reportIncompatibleVariableOverride] -AdditionalToolsItemTypeFunction = Literal["function",] +AdditionalToolsItemToolType = Literal["function",] class AdditionalToolsItemToolFunctionTypedDict(TypedDict): r"""Function tool definition""" name: str - parameters: Nullable[Dict[str, Nullable[Any]]] - type: AdditionalToolsItemTypeFunction + parameters: Nullable[Dict[str, Any]] + type: AdditionalToolsItemToolType description: NotRequired[Nullable[str]] strict: NotRequired[Nullable[bool]] @@ -134,9 +134,9 @@ class AdditionalToolsItemToolFunction(BaseModel): name: str - parameters: Nullable[Dict[str, Nullable[Any]]] + parameters: Nullable[Dict[str, Any]] - type: AdditionalToolsItemTypeFunction + type: AdditionalToolsItemToolType description: OptionalNullable[str] = UNSET diff --git a/src/openrouter/components/advisornestedtool.py b/src/openrouter/components/advisornestedtool.py index b661de1e..23e5798c 100644 --- a/src/openrouter/components/advisornestedtool.py +++ b/src/openrouter/components/advisornestedtool.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL +from openrouter.types import BaseModel, UNSET_SENTINEL import pydantic from pydantic import ConfigDict, model_serializer from typing import Any, Dict, Optional @@ -12,7 +12,7 @@ class AdvisorNestedToolTypedDict(TypedDict): r"""A tool made available to the advisor sub-agent. Only OpenRouter server tools (e.g. openrouter:web_search) are supported; function tools are rejected because the advisor has no way to execute them. The advisor tool may not list itself.""" type: str - parameters: NotRequired[Dict[str, Nullable[Any]]] + parameters: NotRequired[Dict[str, Any]] class AdvisorNestedTool(BaseModel): @@ -21,11 +21,11 @@ class AdvisorNestedTool(BaseModel): model_config = ConfigDict( populate_by_name=True, arbitrary_types_allowed=True, extra="allow" ) - __pydantic_extra__: Dict[str, Nullable[Any]] = pydantic.Field(init=False) + __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False) type: str - parameters: Optional[Dict[str, Nullable[Any]]] = None + parameters: Optional[Dict[str, Any]] = None @property def additional_properties(self): diff --git a/src/openrouter/components/agentmessageitem.py b/src/openrouter/components/agentmessageitem.py index 612d3398..87dbb8cd 100644 --- a/src/openrouter/components/agentmessageitem.py +++ b/src/openrouter/components/agentmessageitem.py @@ -25,7 +25,7 @@ class Agent(BaseModel): model_config = ConfigDict( populate_by_name=True, arbitrary_types_allowed=True, extra="allow" ) - __pydantic_extra__: Dict[str, Nullable[Any]] = pydantic.Field(init=False) + __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False) agent_name: str @@ -50,7 +50,7 @@ class ContentEncryptedContent(BaseModel): model_config = ConfigDict( populate_by_name=True, arbitrary_types_allowed=True, extra="allow" ) - __pydantic_extra__: Dict[str, Nullable[Any]] = pydantic.Field(init=False) + __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False) encrypted_content: str @@ -162,7 +162,7 @@ class AgentMessageItem(BaseModel): model_config = ConfigDict( populate_by_name=True, arbitrary_types_allowed=True, extra="allow" ) - __pydantic_extra__: Dict[str, Nullable[Any]] = pydantic.Field(init=False) + __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False) author: str diff --git a/src/openrouter/components/badgatewayresponseerrordata.py b/src/openrouter/components/badgatewayresponseerrordata.py index 08905537..5c0e65ef 100644 --- a/src/openrouter/components/badgatewayresponseerrordata.py +++ b/src/openrouter/components/badgatewayresponseerrordata.py @@ -18,7 +18,7 @@ class BadGatewayResponseErrorDataTypedDict(TypedDict): code: int message: str - metadata: NotRequired[Nullable[Dict[str, Nullable[Any]]]] + metadata: NotRequired[Nullable[Dict[str, Any]]] class BadGatewayResponseErrorData(BaseModel): @@ -28,7 +28,7 @@ class BadGatewayResponseErrorData(BaseModel): message: str - metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + metadata: OptionalNullable[Dict[str, Any]] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/badrequestresponseerrordata.py b/src/openrouter/components/badrequestresponseerrordata.py index c59b958c..22d26762 100644 --- a/src/openrouter/components/badrequestresponseerrordata.py +++ b/src/openrouter/components/badrequestresponseerrordata.py @@ -18,7 +18,7 @@ class BadRequestResponseErrorDataTypedDict(TypedDict): code: int message: str - metadata: NotRequired[Nullable[Dict[str, Nullable[Any]]]] + metadata: NotRequired[Nullable[Dict[str, Any]]] class BadRequestResponseErrorData(BaseModel): @@ -28,7 +28,7 @@ class BadRequestResponseErrorData(BaseModel): message: str - metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + metadata: OptionalNullable[Dict[str, Any]] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/baseinputs_union.py b/src/openrouter/components/baseinputs_union.py index f662ef47..34d15072 100644 --- a/src/openrouter/components/baseinputs_union.py +++ b/src/openrouter/components/baseinputs_union.py @@ -108,13 +108,12 @@ class UnknownBaseInputsContent1(BaseModel): BaseInputsPhaseUnionTypedDict = TypeAliasType( "BaseInputsPhaseUnionTypedDict", - Union[BaseInputsPhaseCommentary, BaseInputsPhaseFinalAnswer, Any], + Union[BaseInputsPhaseCommentary, BaseInputsPhaseFinalAnswer], ) BaseInputsPhaseUnion = TypeAliasType( - "BaseInputsPhaseUnion", - Union[BaseInputsPhaseCommentary, BaseInputsPhaseFinalAnswer, Any], + "BaseInputsPhaseUnion", Union[BaseInputsPhaseCommentary, BaseInputsPhaseFinalAnswer] ) @@ -232,10 +231,8 @@ def serialize_model(self, handler): BaseInputsUnionTypedDict = TypeAliasType( - "BaseInputsUnionTypedDict", Union[str, List[BaseInputsUnion1TypedDict], Any] + "BaseInputsUnionTypedDict", Union[str, List[BaseInputsUnion1TypedDict]] ) -BaseInputsUnion = TypeAliasType( - "BaseInputsUnion", Union[str, List[BaseInputsUnion1], Any] -) +BaseInputsUnion = TypeAliasType("BaseInputsUnion", Union[str, List[BaseInputsUnion1]]) diff --git a/src/openrouter/components/byokproviderslug.py b/src/openrouter/components/byokproviderslug.py index 09feb935..ae5da193 100644 --- a/src/openrouter/components/byokproviderslug.py +++ b/src/openrouter/components/byokproviderslug.py @@ -90,6 +90,7 @@ "stepfun", "streamlake", "switchpoint", + "tencent", "tenstorrent", "together", "upstage", diff --git a/src/openrouter/components/chatassistantmessage.py b/src/openrouter/components/chatassistantmessage.py index f000d908..3caa2f31 100644 --- a/src/openrouter/components/chatassistantmessage.py +++ b/src/openrouter/components/chatassistantmessage.py @@ -14,19 +14,18 @@ UNSET_SENTINEL, ) from pydantic import model_serializer -from typing import Any, List, Literal, Optional, Union +from typing import List, Literal, Optional, Union from typing_extensions import NotRequired, TypeAliasType, TypedDict ChatAssistantMessageContentTypedDict = TypeAliasType( - "ChatAssistantMessageContentTypedDict", - Union[str, List[ChatContentItemsTypedDict], Any], + "ChatAssistantMessageContentTypedDict", Union[str, List[ChatContentItemsTypedDict]] ) r"""Assistant message content""" ChatAssistantMessageContent = TypeAliasType( - "ChatAssistantMessageContent", Union[str, List[ChatContentItems], Any] + "ChatAssistantMessageContent", Union[str, List[ChatContentItems]] ) r"""Assistant message content""" diff --git a/src/openrouter/components/chatfunctiontool.py b/src/openrouter/components/chatfunctiontool.py index 69f8f1c4..ddb73f3a 100644 --- a/src/openrouter/components/chatfunctiontool.py +++ b/src/openrouter/components/chatfunctiontool.py @@ -56,7 +56,7 @@ class ChatFunctionToolFunctionFunctionTypedDict(TypedDict): r"""Function name (a-z, A-Z, 0-9, underscores, dashes, max 64 chars)""" description: NotRequired[str] r"""Function description for the model""" - parameters: NotRequired[Dict[str, Nullable[Any]]] + parameters: NotRequired[Dict[str, Any]] r"""Function parameters as JSON Schema object""" strict: NotRequired[Nullable[bool]] r"""Enable strict schema adherence""" @@ -71,7 +71,7 @@ class ChatFunctionToolFunctionFunction(BaseModel): description: Optional[str] = None r"""Function description for the model""" - parameters: Optional[Dict[str, Nullable[Any]]] = None + parameters: Optional[Dict[str, Any]] = None r"""Function parameters as JSON Schema object""" strict: OptionalNullable[bool] = UNSET diff --git a/src/openrouter/components/chatjsonschemaconfig.py b/src/openrouter/components/chatjsonschemaconfig.py index 4b3aa418..b3953ee5 100644 --- a/src/openrouter/components/chatjsonschemaconfig.py +++ b/src/openrouter/components/chatjsonschemaconfig.py @@ -21,7 +21,7 @@ class ChatJSONSchemaConfigTypedDict(TypedDict): r"""Schema name (a-z, A-Z, 0-9, underscores, dashes, max 64 chars)""" description: NotRequired[str] r"""Schema description for the model""" - schema_: NotRequired[Dict[str, Nullable[Any]]] + schema_: NotRequired[Dict[str, Any]] r"""JSON Schema object""" strict: NotRequired[Nullable[bool]] r"""Enable strict schema adherence""" @@ -36,9 +36,7 @@ class ChatJSONSchemaConfig(BaseModel): description: Optional[str] = None r"""Schema description for the model""" - schema_: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="schema") - ] = None + schema_: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="schema")] = None r"""JSON Schema object""" strict: OptionalNullable[bool] = UNSET diff --git a/src/openrouter/components/chatrequest.py b/src/openrouter/components/chatrequest.py index 32906484..4d1c948e 100644 --- a/src/openrouter/components/chatrequest.py +++ b/src/openrouter/components/chatrequest.py @@ -59,7 +59,7 @@ ) from openrouter.utils import get_discriminator from pydantic import Discriminator, Tag, model_serializer -from typing import Any, Dict, List, Literal, Optional, Union +from typing import Dict, List, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -216,11 +216,11 @@ def serialize_model(self, handler): r"""The service tier to use for processing this request.""" -StopTypedDict = TypeAliasType("StopTypedDict", Union[str, List[str], Any]) +StopTypedDict = TypeAliasType("StopTypedDict", Union[str, List[str]]) r"""Stop sequences (up to 4)""" -Stop = TypeAliasType("Stop", Union[str, List[str], Any]) +Stop = TypeAliasType("Stop", Union[str, List[str]]) r"""Stop sequences (up to 4)""" diff --git a/src/openrouter/components/compactionitem.py b/src/openrouter/components/compactionitem.py index fd2fa67f..6149d001 100644 --- a/src/openrouter/components/compactionitem.py +++ b/src/openrouter/components/compactionitem.py @@ -31,7 +31,7 @@ class CompactionItem(BaseModel): model_config = ConfigDict( populate_by_name=True, arbitrary_types_allowed=True, extra="allow" ) - __pydantic_extra__: Dict[str, Nullable[Any]] = pydantic.Field(init=False) + __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False) encrypted_content: str diff --git a/src/openrouter/components/compoundfilter.py b/src/openrouter/components/compoundfilter.py index c80781ee..f6386f18 100644 --- a/src/openrouter/components/compoundfilter.py +++ b/src/openrouter/components/compoundfilter.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from openrouter.types import BaseModel, Nullable, UnrecognizedStr +from openrouter.types import BaseModel, UnrecognizedStr from typing import Any, Dict, List, Literal, Union from typing_extensions import TypedDict @@ -18,13 +18,13 @@ class CompoundFilterTypedDict(TypedDict): r"""A compound filter that combines multiple comparison or compound filters""" - filters: List[Dict[str, Nullable[Any]]] + filters: List[Dict[str, Any]] type: CompoundFilterType class CompoundFilter(BaseModel): r"""A compound filter that combines multiple comparison or compound filters""" - filters: List[Dict[str, Nullable[Any]]] + filters: List[Dict[str, Any]] type: CompoundFilterType diff --git a/src/openrouter/components/conflictresponseerrordata.py b/src/openrouter/components/conflictresponseerrordata.py index 39276ad8..c5b07359 100644 --- a/src/openrouter/components/conflictresponseerrordata.py +++ b/src/openrouter/components/conflictresponseerrordata.py @@ -18,7 +18,7 @@ class ConflictResponseErrorDataTypedDict(TypedDict): code: int message: str - metadata: NotRequired[Nullable[Dict[str, Nullable[Any]]]] + metadata: NotRequired[Nullable[Dict[str, Any]]] class ConflictResponseErrorData(BaseModel): @@ -28,7 +28,7 @@ class ConflictResponseErrorData(BaseModel): message: str - metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + metadata: OptionalNullable[Dict[str, Any]] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/contextcompactionitem.py b/src/openrouter/components/contextcompactionitem.py index 591e51c4..6ec9c2ba 100644 --- a/src/openrouter/components/contextcompactionitem.py +++ b/src/openrouter/components/contextcompactionitem.py @@ -31,7 +31,7 @@ class ContextCompactionItem(BaseModel): model_config = ConfigDict( populate_by_name=True, arbitrary_types_allowed=True, extra="allow" ) - __pydantic_extra__: Dict[str, Nullable[Any]] = pydantic.Field(init=False) + __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False) type: ContextCompactionItemType diff --git a/src/openrouter/components/createobservabilitydestinationrequest.py b/src/openrouter/components/createobservabilitydestinationrequest.py index 6cd46b4f..ad54eb7a 100644 --- a/src/openrouter/components/createobservabilitydestinationrequest.py +++ b/src/openrouter/components/createobservabilitydestinationrequest.py @@ -44,7 +44,7 @@ class CreateObservabilityDestinationRequestTypedDict(TypedDict): - config: Dict[str, Nullable[Any]] + config: Dict[str, Any] r"""Provider-specific configuration. The shape depends on `type` and is validated server-side.""" name: str r"""Human-readable name for the destination.""" @@ -65,7 +65,7 @@ class CreateObservabilityDestinationRequestTypedDict(TypedDict): class CreateObservabilityDestinationRequest(BaseModel): - config: Dict[str, Nullable[Any]] + config: Dict[str, Any] r"""Provider-specific configuration. The shape depends on `type` and is validated server-side.""" name: str diff --git a/src/openrouter/components/debugevent.py b/src/openrouter/components/debugevent.py index 3346002a..dd463df8 100644 --- a/src/openrouter/components/debugevent.py +++ b/src/openrouter/components/debugevent.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL, UnrecognizedStr +from openrouter.types import BaseModel, UNSET_SENTINEL, UnrecognizedStr from pydantic import model_serializer from typing import Any, Dict, Literal, Optional, Union from typing_extensions import NotRequired, TypedDict @@ -33,12 +33,12 @@ class Timings(BaseModel): class DebugTypedDict(TypedDict): - echo_upstream_body: NotRequired[Dict[str, Nullable[Any]]] + echo_upstream_body: NotRequired[Dict[str, Any]] timings: NotRequired[TimingsTypedDict] class Debug(BaseModel): - echo_upstream_body: Optional[Dict[str, Nullable[Any]]] = None + echo_upstream_body: Optional[Dict[str, Any]] = None timings: Optional[Timings] = None diff --git a/src/openrouter/components/easyinputmessage.py b/src/openrouter/components/easyinputmessage.py index 814efc2c..7a92038f 100644 --- a/src/openrouter/components/easyinputmessage.py +++ b/src/openrouter/components/easyinputmessage.py @@ -15,7 +15,7 @@ ) from openrouter.utils import get_discriminator from pydantic import Discriminator, Tag, model_serializer -from typing import Any, List, Literal, Optional, Union +from typing import List, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -102,13 +102,12 @@ def serialize_model(self, handler): EasyInputMessageContentUnion2TypedDict = TypeAliasType( "EasyInputMessageContentUnion2TypedDict", - Union[List[EasyInputMessageContentUnion1TypedDict], str, Any], + Union[List[EasyInputMessageContentUnion1TypedDict], str], ) EasyInputMessageContentUnion2 = TypeAliasType( - "EasyInputMessageContentUnion2", - Union[List[EasyInputMessageContentUnion1], str, Any], + "EasyInputMessageContentUnion2", Union[List[EasyInputMessageContentUnion1], str] ) @@ -120,14 +119,14 @@ def serialize_model(self, handler): EasyInputMessagePhaseUnionTypedDict = TypeAliasType( "EasyInputMessagePhaseUnionTypedDict", - Union[EasyInputMessagePhaseCommentary, EasyInputMessagePhaseFinalAnswer, Any], + Union[EasyInputMessagePhaseCommentary, EasyInputMessagePhaseFinalAnswer], ) r"""The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer` for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages.""" EasyInputMessagePhaseUnion = TypeAliasType( "EasyInputMessagePhaseUnion", - Union[EasyInputMessagePhaseCommentary, EasyInputMessagePhaseFinalAnswer, Any], + Union[EasyInputMessagePhaseCommentary, EasyInputMessagePhaseFinalAnswer], ) r"""The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer` for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages.""" diff --git a/src/openrouter/components/edgenetworktimeoutresponseerrordata.py b/src/openrouter/components/edgenetworktimeoutresponseerrordata.py index 9e421b3c..43ddb332 100644 --- a/src/openrouter/components/edgenetworktimeoutresponseerrordata.py +++ b/src/openrouter/components/edgenetworktimeoutresponseerrordata.py @@ -18,7 +18,7 @@ class EdgeNetworkTimeoutResponseErrorDataTypedDict(TypedDict): code: int message: str - metadata: NotRequired[Nullable[Dict[str, Nullable[Any]]]] + metadata: NotRequired[Nullable[Dict[str, Any]]] class EdgeNetworkTimeoutResponseErrorData(BaseModel): @@ -28,7 +28,7 @@ class EdgeNetworkTimeoutResponseErrorData(BaseModel): message: str - metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + metadata: OptionalNullable[Dict[str, Any]] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/filesearchservertool.py b/src/openrouter/components/filesearchservertool.py index 5f5b45a9..63a4322e 100644 --- a/src/openrouter/components/filesearchservertool.py +++ b/src/openrouter/components/filesearchservertool.py @@ -11,7 +11,7 @@ UnrecognizedStr, ) from pydantic import model_serializer -from typing import Any, List, Literal, Optional, Union +from typing import List, Literal, Optional, Union from typing_extensions import NotRequired, TypeAliasType, TypedDict @@ -65,11 +65,11 @@ class Filters(BaseModel): FiltersUnionTypedDict = TypeAliasType( - "FiltersUnionTypedDict", Union[CompoundFilterTypedDict, FiltersTypedDict, Any] + "FiltersUnionTypedDict", Union[CompoundFilterTypedDict, FiltersTypedDict] ) -FiltersUnion = TypeAliasType("FiltersUnion", Union[CompoundFilter, Filters, Any]) +FiltersUnion = TypeAliasType("FiltersUnion", Union[CompoundFilter, Filters]) Ranker = Union[ diff --git a/src/openrouter/components/forbiddenresponseerrordata.py b/src/openrouter/components/forbiddenresponseerrordata.py index e790a632..6b6c15a6 100644 --- a/src/openrouter/components/forbiddenresponseerrordata.py +++ b/src/openrouter/components/forbiddenresponseerrordata.py @@ -18,7 +18,7 @@ class ForbiddenResponseErrorDataTypedDict(TypedDict): code: int message: str - metadata: NotRequired[Nullable[Dict[str, Nullable[Any]]]] + metadata: NotRequired[Nullable[Dict[str, Any]]] class ForbiddenResponseErrorData(BaseModel): @@ -28,7 +28,7 @@ class ForbiddenResponseErrorData(BaseModel): message: str - metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + metadata: OptionalNullable[Dict[str, Any]] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/formatjsonschemaconfig.py b/src/openrouter/components/formatjsonschemaconfig.py index f748cc22..cb370d92 100644 --- a/src/openrouter/components/formatjsonschemaconfig.py +++ b/src/openrouter/components/formatjsonschemaconfig.py @@ -21,7 +21,7 @@ class FormatJSONSchemaConfigTypedDict(TypedDict): r"""JSON schema constrained response format""" name: str - schema_: Dict[str, Nullable[Any]] + schema_: Dict[str, Any] type: FormatJSONSchemaConfigType description: NotRequired[str] strict: NotRequired[Nullable[bool]] @@ -32,7 +32,7 @@ class FormatJSONSchemaConfig(BaseModel): name: str - schema_: Annotated[Dict[str, Nullable[Any]], pydantic.Field(alias="schema")] + schema_: Annotated[Dict[str, Any], pydantic.Field(alias="schema")] type: FormatJSONSchemaConfigType diff --git a/src/openrouter/components/functioncalloutputitem.py b/src/openrouter/components/functioncalloutputitem.py index 0f61f4d3..5a290e0b 100644 --- a/src/openrouter/components/functioncalloutputitem.py +++ b/src/openrouter/components/functioncalloutputitem.py @@ -3,6 +3,7 @@ from __future__ import annotations from .inputfile import InputFile, InputFileTypedDict from .inputtext import InputText, InputTextTypedDict +from .toolcallstatus import ToolCallStatus from openrouter.types import ( BaseModel, Nullable, @@ -106,16 +107,6 @@ def serialize_model(self, handler): ) -FunctionCallOutputItemStatus = Union[ - Literal[ - "in_progress", - "completed", - "incomplete", - ], - UnrecognizedStr, -] - - FunctionCallOutputItemTypeFunctionCallOutput = Literal["function_call_output",] @@ -126,7 +117,7 @@ class FunctionCallOutputItemTypedDict(TypedDict): output: FunctionCallOutputItemOutputUnion2TypedDict type: FunctionCallOutputItemTypeFunctionCallOutput id: NotRequired[Nullable[str]] - status: NotRequired[Nullable[FunctionCallOutputItemStatus]] + status: NotRequired[Nullable[ToolCallStatus]] class FunctionCallOutputItem(BaseModel): @@ -140,7 +131,7 @@ class FunctionCallOutputItem(BaseModel): id: OptionalNullable[str] = UNSET - status: OptionalNullable[FunctionCallOutputItemStatus] = UNSET + status: OptionalNullable[ToolCallStatus] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/fusionplugin.py b/src/openrouter/components/fusionplugin.py index c04ecdca..7ef18fda 100644 --- a/src/openrouter/components/fusionplugin.py +++ b/src/openrouter/components/fusionplugin.py @@ -3,8 +3,8 @@ from __future__ import annotations from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL, UnrecognizedStr from pydantic import model_serializer -from typing import Any, Dict, List, Literal, Optional, Union -from typing_extensions import NotRequired, TypedDict +from typing import Dict, List, Literal, Optional, Union +from typing_extensions import NotRequired, TypeAliasType, TypedDict FusionPluginID = Literal["fusion",] @@ -21,10 +21,42 @@ r"""A curated OpenRouter fusion preset (slugs follow `-`, e.g. `general-high`). Expands server-side into the preset's analysis_models panel and judge model, so callers never name individual models. Explicitly provided `analysis_models` / `model` take precedence.""" +Parameters2TypedDict = TypeAliasType("Parameters2TypedDict", Union[str, float, bool]) + + +Parameters2 = TypeAliasType("Parameters2", Union[str, float, bool]) + + +Parameters1TypedDict = TypeAliasType("Parameters1TypedDict", Union[str, float, bool]) + + +Parameters1 = TypeAliasType("Parameters1", Union[str, float, bool]) + + +Parameters3TypedDict = TypeAliasType( + "Parameters3TypedDict", + Union[ + str, + float, + bool, + List[Nullable[Parameters1TypedDict]], + Dict[str, Nullable[Parameters2TypedDict]], + ], +) + + +Parameters3 = TypeAliasType( + "Parameters3", + Union[ + str, float, bool, List[Nullable[Parameters1]], Dict[str, Nullable[Parameters2]] + ], +) + + class FusionPluginToolTypedDict(TypedDict): type: str r"""Server tool type identifier (e.g. \"openrouter:web_search\", \"openrouter:web_fetch\").""" - parameters: NotRequired[Dict[str, Nullable[Any]]] + parameters: NotRequired[Dict[str, Nullable[Parameters3TypedDict]]] r"""Optional configuration forwarded as the tool's `parameters` object.""" @@ -32,7 +64,7 @@ class FusionPluginTool(BaseModel): type: str r"""Server tool type identifier (e.g. \"openrouter:web_search\", \"openrouter:web_fetch\").""" - parameters: Optional[Dict[str, Nullable[Any]]] = None + parameters: Optional[Dict[str, Nullable[Parameters3]]] = None r"""Optional configuration forwarded as the tool's `parameters` object.""" @model_serializer(mode="wrap") diff --git a/src/openrouter/components/fusionservertoolconfig.py b/src/openrouter/components/fusionservertoolconfig.py index f7377d2d..4426b5b3 100644 --- a/src/openrouter/components/fusionservertoolconfig.py +++ b/src/openrouter/components/fusionservertoolconfig.py @@ -5,7 +5,7 @@ AnthropicCacheControlDirective, AnthropicCacheControlDirectiveTypedDict, ) -from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL, UnrecognizedStr +from openrouter.types import BaseModel, UNSET_SENTINEL, UnrecognizedStr from pydantic import model_serializer from typing import Any, Dict, List, Literal, Optional, Union from typing_extensions import NotRequired, TypedDict @@ -64,7 +64,7 @@ def serialize_model(self, handler): class FusionServerToolConfigToolTypedDict(TypedDict): type: str r"""Server tool type identifier (e.g. \"openrouter:web_search\", \"openrouter:web_fetch\").""" - parameters: NotRequired[Dict[str, Nullable[Any]]] + parameters: NotRequired[Dict[str, Any]] r"""Optional configuration forwarded as the tool's `parameters` object.""" @@ -72,7 +72,7 @@ class FusionServerToolConfigTool(BaseModel): type: str r"""Server tool type identifier (e.g. \"openrouter:web_search\", \"openrouter:web_fetch\").""" - parameters: Optional[Dict[str, Nullable[Any]]] = None + parameters: Optional[Dict[str, Any]] = None r"""Optional configuration forwarded as the tool's `parameters` object.""" @model_serializer(mode="wrap") diff --git a/src/openrouter/components/generationcontentdata.py b/src/openrouter/components/generationcontentdata.py index 2005a3b5..5a777789 100644 --- a/src/openrouter/components/generationcontentdata.py +++ b/src/openrouter/components/generationcontentdata.py @@ -8,11 +8,11 @@ class Input2TypedDict(TypedDict): - messages: List[Nullable[Any]] + messages: List[Any] class Input2(BaseModel): - messages: List[Nullable[Any]] + messages: List[Any] class Input1TypedDict(TypedDict): diff --git a/src/openrouter/components/imageconfig.py b/src/openrouter/components/imageconfig.py index d24d5e2b..62c61b3a 100644 --- a/src/openrouter/components/imageconfig.py +++ b/src/openrouter/components/imageconfig.py @@ -1,14 +1,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from openrouter.types import Nullable from typing import Any, List, Union from typing_extensions import TypeAliasType ImageConfigTypedDict = TypeAliasType( - "ImageConfigTypedDict", Union[str, float, List[Nullable[Any]]] + "ImageConfigTypedDict", Union[str, float, List[Any]] ) -ImageConfig = TypeAliasType("ImageConfig", Union[str, float, List[Nullable[Any]]]) +ImageConfig = TypeAliasType("ImageConfig", Union[str, float, List[Any]]) diff --git a/src/openrouter/components/imagegenerationproviderpreferences.py b/src/openrouter/components/imagegenerationproviderpreferences.py index 15f024e9..c2d2bd05 100644 --- a/src/openrouter/components/imagegenerationproviderpreferences.py +++ b/src/openrouter/components/imagegenerationproviderpreferences.py @@ -40,427 +40,420 @@ class ImageGenerationProviderPreferencesOptionsTypedDict(TypedDict): r"""Provider-specific options keyed by provider slug. Only options for the matched provider are forwarded; the rest are ignored. Unrecognized keys are silently dropped.""" - oneai: NotRequired[Dict[str, Nullable[Any]]] - ai21: NotRequired[Dict[str, Nullable[Any]]] - aion_labs: NotRequired[Dict[str, Nullable[Any]]] - akashml: NotRequired[Dict[str, Nullable[Any]]] - alibaba: NotRequired[Dict[str, Nullable[Any]]] - amazon_bedrock: NotRequired[Dict[str, Nullable[Any]]] - amazon_nova: NotRequired[Dict[str, Nullable[Any]]] - ambient: NotRequired[Dict[str, Nullable[Any]]] - anthropic: NotRequired[Dict[str, Nullable[Any]]] - anyscale: NotRequired[Dict[str, Nullable[Any]]] - arcee_ai: NotRequired[Dict[str, Nullable[Any]]] - atlas_cloud: NotRequired[Dict[str, Nullable[Any]]] - atoma: NotRequired[Dict[str, Nullable[Any]]] - avian: NotRequired[Dict[str, Nullable[Any]]] - azure: NotRequired[Dict[str, Nullable[Any]]] - baidu: NotRequired[Dict[str, Nullable[Any]]] - baseten: NotRequired[Dict[str, Nullable[Any]]] - black_forest_labs: NotRequired[Dict[str, Nullable[Any]]] - byteplus: NotRequired[Dict[str, Nullable[Any]]] - centml: NotRequired[Dict[str, Nullable[Any]]] - cerebras: NotRequired[Dict[str, Nullable[Any]]] - chutes: NotRequired[Dict[str, Nullable[Any]]] - cirrascale: NotRequired[Dict[str, Nullable[Any]]] - clarifai: NotRequired[Dict[str, Nullable[Any]]] - cloudflare: NotRequired[Dict[str, Nullable[Any]]] - cohere: NotRequired[Dict[str, Nullable[Any]]] - crofai: NotRequired[Dict[str, Nullable[Any]]] - crucible: NotRequired[Dict[str, Nullable[Any]]] - crusoe: NotRequired[Dict[str, Nullable[Any]]] - darkbloom: NotRequired[Dict[str, Nullable[Any]]] - decart: NotRequired[Dict[str, Nullable[Any]]] - deepgram: NotRequired[Dict[str, Nullable[Any]]] - deepinfra: NotRequired[Dict[str, Nullable[Any]]] - deepseek: NotRequired[Dict[str, Nullable[Any]]] - dekallm: NotRequired[Dict[str, Nullable[Any]]] - digitalocean: NotRequired[Dict[str, Nullable[Any]]] - enfer: NotRequired[Dict[str, Nullable[Any]]] - fake_provider: NotRequired[Dict[str, Nullable[Any]]] - featherless: NotRequired[Dict[str, Nullable[Any]]] - fireworks: NotRequired[Dict[str, Nullable[Any]]] - friendli: NotRequired[Dict[str, Nullable[Any]]] - gmicloud: NotRequired[Dict[str, Nullable[Any]]] - google_ai_studio: NotRequired[Dict[str, Nullable[Any]]] - google_vertex: NotRequired[Dict[str, Nullable[Any]]] - gopomelo: NotRequired[Dict[str, Nullable[Any]]] - groq: NotRequired[Dict[str, Nullable[Any]]] - heygen: NotRequired[Dict[str, Nullable[Any]]] - huggingface: NotRequired[Dict[str, Nullable[Any]]] - hyperbolic: NotRequired[Dict[str, Nullable[Any]]] - hyperbolic_quantized: NotRequired[Dict[str, Nullable[Any]]] - inception: NotRequired[Dict[str, Nullable[Any]]] - inceptron: NotRequired[Dict[str, Nullable[Any]]] - inferact_vllm: NotRequired[Dict[str, Nullable[Any]]] - inference_net: NotRequired[Dict[str, Nullable[Any]]] - infermatic: NotRequired[Dict[str, Nullable[Any]]] - inflection: NotRequired[Dict[str, Nullable[Any]]] - inocloud: NotRequired[Dict[str, Nullable[Any]]] - io_net: NotRequired[Dict[str, Nullable[Any]]] - ionstream: NotRequired[Dict[str, Nullable[Any]]] - klusterai: NotRequired[Dict[str, Nullable[Any]]] - krea: NotRequired[Dict[str, Nullable[Any]]] - lambda_: NotRequired[Dict[str, Nullable[Any]]] - lepton: NotRequired[Dict[str, Nullable[Any]]] - liquid: NotRequired[Dict[str, Nullable[Any]]] - lynn: NotRequired[Dict[str, Nullable[Any]]] - lynn_private: NotRequired[Dict[str, Nullable[Any]]] - mancer: NotRequired[Dict[str, Nullable[Any]]] - mancer_old: NotRequired[Dict[str, Nullable[Any]]] - mara: NotRequired[Dict[str, Nullable[Any]]] - meta: NotRequired[Dict[str, Nullable[Any]]] - minimax: NotRequired[Dict[str, Nullable[Any]]] - mistral: NotRequired[Dict[str, Nullable[Any]]] - modal: NotRequired[Dict[str, Nullable[Any]]] - modelrun: NotRequired[Dict[str, Nullable[Any]]] - modular: NotRequired[Dict[str, Nullable[Any]]] - moonshotai: NotRequired[Dict[str, Nullable[Any]]] - morph: NotRequired[Dict[str, Nullable[Any]]] - ncompass: NotRequired[Dict[str, Nullable[Any]]] - nebius: NotRequired[Dict[str, Nullable[Any]]] - nex_agi: NotRequired[Dict[str, Nullable[Any]]] - nextbit: NotRequired[Dict[str, Nullable[Any]]] - nineteen: NotRequired[Dict[str, Nullable[Any]]] - novita: NotRequired[Dict[str, Nullable[Any]]] - nvidia: NotRequired[Dict[str, Nullable[Any]]] - octoai: NotRequired[Dict[str, Nullable[Any]]] - open_inference: NotRequired[Dict[str, Nullable[Any]]] - openai: NotRequired[Dict[str, Nullable[Any]]] - parasail: NotRequired[Dict[str, Nullable[Any]]] - perceptron: NotRequired[Dict[str, Nullable[Any]]] - perplexity: NotRequired[Dict[str, Nullable[Any]]] - phala: NotRequired[Dict[str, Nullable[Any]]] - poolside: NotRequired[Dict[str, Nullable[Any]]] - quiver: NotRequired[Dict[str, Nullable[Any]]] - recraft: NotRequired[Dict[str, Nullable[Any]]] - recursal: NotRequired[Dict[str, Nullable[Any]]] - reflection: NotRequired[Dict[str, Nullable[Any]]] - reka: NotRequired[Dict[str, Nullable[Any]]] - relace: NotRequired[Dict[str, Nullable[Any]]] - replicate: NotRequired[Dict[str, Nullable[Any]]] - sail_research: NotRequired[Dict[str, Nullable[Any]]] - sakana: NotRequired[Dict[str, Nullable[Any]]] - sambanova: NotRequired[Dict[str, Nullable[Any]]] - sambanova_cloaked: NotRequired[Dict[str, Nullable[Any]]] - seed: NotRequired[Dict[str, Nullable[Any]]] - sf_compute: NotRequired[Dict[str, Nullable[Any]]] - siliconflow: NotRequired[Dict[str, Nullable[Any]]] - sourceful: NotRequired[Dict[str, Nullable[Any]]] - stealth: NotRequired[Dict[str, Nullable[Any]]] - stepfun: NotRequired[Dict[str, Nullable[Any]]] - streamlake: NotRequired[Dict[str, Nullable[Any]]] - switchpoint: NotRequired[Dict[str, Nullable[Any]]] - targon: NotRequired[Dict[str, Nullable[Any]]] - tenstorrent: NotRequired[Dict[str, Nullable[Any]]] - together: NotRequired[Dict[str, Nullable[Any]]] - together_lite: NotRequired[Dict[str, Nullable[Any]]] - ubicloud: NotRequired[Dict[str, Nullable[Any]]] - upstage: NotRequired[Dict[str, Nullable[Any]]] - venice: NotRequired[Dict[str, Nullable[Any]]] - wafer: NotRequired[Dict[str, Nullable[Any]]] - wandb: NotRequired[Dict[str, Nullable[Any]]] - xai: NotRequired[Dict[str, Nullable[Any]]] - xiaomi: NotRequired[Dict[str, Nullable[Any]]] - z_ai: NotRequired[Dict[str, Nullable[Any]]] + oneai: NotRequired[Dict[str, Any]] + ai21: NotRequired[Dict[str, Any]] + aion_labs: NotRequired[Dict[str, Any]] + akashml: NotRequired[Dict[str, Any]] + alibaba: NotRequired[Dict[str, Any]] + amazon_bedrock: NotRequired[Dict[str, Any]] + amazon_nova: NotRequired[Dict[str, Any]] + ambient: NotRequired[Dict[str, Any]] + anthropic: NotRequired[Dict[str, Any]] + anyscale: NotRequired[Dict[str, Any]] + arcee_ai: NotRequired[Dict[str, Any]] + atlas_cloud: NotRequired[Dict[str, Any]] + atoma: NotRequired[Dict[str, Any]] + avian: NotRequired[Dict[str, Any]] + azure: NotRequired[Dict[str, Any]] + baidu: NotRequired[Dict[str, Any]] + baseten: NotRequired[Dict[str, Any]] + black_forest_labs: NotRequired[Dict[str, Any]] + byteplus: NotRequired[Dict[str, Any]] + centml: NotRequired[Dict[str, Any]] + cerebras: NotRequired[Dict[str, Any]] + chutes: NotRequired[Dict[str, Any]] + cirrascale: NotRequired[Dict[str, Any]] + clarifai: NotRequired[Dict[str, Any]] + cloudflare: NotRequired[Dict[str, Any]] + cohere: NotRequired[Dict[str, Any]] + crofai: NotRequired[Dict[str, Any]] + crucible: NotRequired[Dict[str, Any]] + crusoe: NotRequired[Dict[str, Any]] + darkbloom: NotRequired[Dict[str, Any]] + decart: NotRequired[Dict[str, Any]] + deepgram: NotRequired[Dict[str, Any]] + deepinfra: NotRequired[Dict[str, Any]] + deepseek: NotRequired[Dict[str, Any]] + dekallm: NotRequired[Dict[str, Any]] + digitalocean: NotRequired[Dict[str, Any]] + enfer: NotRequired[Dict[str, Any]] + fake_provider: NotRequired[Dict[str, Any]] + featherless: NotRequired[Dict[str, Any]] + fireworks: NotRequired[Dict[str, Any]] + friendli: NotRequired[Dict[str, Any]] + gmicloud: NotRequired[Dict[str, Any]] + google_ai_studio: NotRequired[Dict[str, Any]] + google_vertex: NotRequired[Dict[str, Any]] + gopomelo: NotRequired[Dict[str, Any]] + groq: NotRequired[Dict[str, Any]] + heygen: NotRequired[Dict[str, Any]] + huggingface: NotRequired[Dict[str, Any]] + hyperbolic: NotRequired[Dict[str, Any]] + hyperbolic_quantized: NotRequired[Dict[str, Any]] + inception: NotRequired[Dict[str, Any]] + inceptron: NotRequired[Dict[str, Any]] + inferact_vllm: NotRequired[Dict[str, Any]] + inference_net: NotRequired[Dict[str, Any]] + infermatic: NotRequired[Dict[str, Any]] + inflection: NotRequired[Dict[str, Any]] + inocloud: NotRequired[Dict[str, Any]] + io_net: NotRequired[Dict[str, Any]] + ionstream: NotRequired[Dict[str, Any]] + klusterai: NotRequired[Dict[str, Any]] + krea: NotRequired[Dict[str, Any]] + lambda_: NotRequired[Dict[str, Any]] + lepton: NotRequired[Dict[str, Any]] + liquid: NotRequired[Dict[str, Any]] + lynn: NotRequired[Dict[str, Any]] + lynn_private: NotRequired[Dict[str, Any]] + mancer: NotRequired[Dict[str, Any]] + mancer_old: NotRequired[Dict[str, Any]] + mara: NotRequired[Dict[str, Any]] + meta: NotRequired[Dict[str, Any]] + minimax: NotRequired[Dict[str, Any]] + mistral: NotRequired[Dict[str, Any]] + modal: NotRequired[Dict[str, Any]] + modelrun: NotRequired[Dict[str, Any]] + modular: NotRequired[Dict[str, Any]] + moonshotai: NotRequired[Dict[str, Any]] + morph: NotRequired[Dict[str, Any]] + ncompass: NotRequired[Dict[str, Any]] + nebius: NotRequired[Dict[str, Any]] + nex_agi: NotRequired[Dict[str, Any]] + nextbit: NotRequired[Dict[str, Any]] + nineteen: NotRequired[Dict[str, Any]] + novita: NotRequired[Dict[str, Any]] + nvidia: NotRequired[Dict[str, Any]] + octoai: NotRequired[Dict[str, Any]] + open_inference: NotRequired[Dict[str, Any]] + openai: NotRequired[Dict[str, Any]] + parasail: NotRequired[Dict[str, Any]] + perceptron: NotRequired[Dict[str, Any]] + perplexity: NotRequired[Dict[str, Any]] + phala: NotRequired[Dict[str, Any]] + poolside: NotRequired[Dict[str, Any]] + quiver: NotRequired[Dict[str, Any]] + recraft: NotRequired[Dict[str, Any]] + recursal: NotRequired[Dict[str, Any]] + reflection: NotRequired[Dict[str, Any]] + reka: NotRequired[Dict[str, Any]] + relace: NotRequired[Dict[str, Any]] + replicate: NotRequired[Dict[str, Any]] + sail_research: NotRequired[Dict[str, Any]] + sakana: NotRequired[Dict[str, Any]] + sambanova: NotRequired[Dict[str, Any]] + sambanova_cloaked: NotRequired[Dict[str, Any]] + seed: NotRequired[Dict[str, Any]] + sf_compute: NotRequired[Dict[str, Any]] + siliconflow: NotRequired[Dict[str, Any]] + sourceful: NotRequired[Dict[str, Any]] + stealth: NotRequired[Dict[str, Any]] + stepfun: NotRequired[Dict[str, Any]] + streamlake: NotRequired[Dict[str, Any]] + switchpoint: NotRequired[Dict[str, Any]] + targon: NotRequired[Dict[str, Any]] + tencent: NotRequired[Dict[str, Any]] + tenstorrent: NotRequired[Dict[str, Any]] + together: NotRequired[Dict[str, Any]] + together_lite: NotRequired[Dict[str, Any]] + ubicloud: NotRequired[Dict[str, Any]] + upstage: NotRequired[Dict[str, Any]] + venice: NotRequired[Dict[str, Any]] + wafer: NotRequired[Dict[str, Any]] + wandb: NotRequired[Dict[str, Any]] + xai: NotRequired[Dict[str, Any]] + xiaomi: NotRequired[Dict[str, Any]] + z_ai: NotRequired[Dict[str, Any]] class ImageGenerationProviderPreferencesOptions(BaseModel): r"""Provider-specific options keyed by provider slug. Only options for the matched provider are forwarded; the rest are ignored. Unrecognized keys are silently dropped.""" - oneai: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="01ai") - ] = None + oneai: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="01ai")] = None - ai21: Optional[Dict[str, Nullable[Any]]] = None + ai21: Optional[Dict[str, Any]] = None aion_labs: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="aion-labs") + Optional[Dict[str, Any]], pydantic.Field(alias="aion-labs") ] = None - akashml: Optional[Dict[str, Nullable[Any]]] = None + akashml: Optional[Dict[str, Any]] = None - alibaba: Optional[Dict[str, Nullable[Any]]] = None + alibaba: Optional[Dict[str, Any]] = None amazon_bedrock: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="amazon-bedrock") + Optional[Dict[str, Any]], pydantic.Field(alias="amazon-bedrock") ] = None amazon_nova: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="amazon-nova") + Optional[Dict[str, Any]], pydantic.Field(alias="amazon-nova") ] = None - ambient: Optional[Dict[str, Nullable[Any]]] = None + ambient: Optional[Dict[str, Any]] = None - anthropic: Optional[Dict[str, Nullable[Any]]] = None + anthropic: Optional[Dict[str, Any]] = None - anyscale: Optional[Dict[str, Nullable[Any]]] = None + anyscale: Optional[Dict[str, Any]] = None - arcee_ai: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="arcee-ai") - ] = None + arcee_ai: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="arcee-ai")] = ( + None + ) atlas_cloud: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="atlas-cloud") + Optional[Dict[str, Any]], pydantic.Field(alias="atlas-cloud") ] = None - atoma: Optional[Dict[str, Nullable[Any]]] = None + atoma: Optional[Dict[str, Any]] = None - avian: Optional[Dict[str, Nullable[Any]]] = None + avian: Optional[Dict[str, Any]] = None - azure: Optional[Dict[str, Nullable[Any]]] = None + azure: Optional[Dict[str, Any]] = None - baidu: Optional[Dict[str, Nullable[Any]]] = None + baidu: Optional[Dict[str, Any]] = None - baseten: Optional[Dict[str, Nullable[Any]]] = None + baseten: Optional[Dict[str, Any]] = None black_forest_labs: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="black-forest-labs") + Optional[Dict[str, Any]], pydantic.Field(alias="black-forest-labs") ] = None - byteplus: Optional[Dict[str, Nullable[Any]]] = None + byteplus: Optional[Dict[str, Any]] = None - centml: Optional[Dict[str, Nullable[Any]]] = None + centml: Optional[Dict[str, Any]] = None - cerebras: Optional[Dict[str, Nullable[Any]]] = None + cerebras: Optional[Dict[str, Any]] = None - chutes: Optional[Dict[str, Nullable[Any]]] = None + chutes: Optional[Dict[str, Any]] = None - cirrascale: Optional[Dict[str, Nullable[Any]]] = None + cirrascale: Optional[Dict[str, Any]] = None - clarifai: Optional[Dict[str, Nullable[Any]]] = None + clarifai: Optional[Dict[str, Any]] = None - cloudflare: Optional[Dict[str, Nullable[Any]]] = None + cloudflare: Optional[Dict[str, Any]] = None - cohere: Optional[Dict[str, Nullable[Any]]] = None + cohere: Optional[Dict[str, Any]] = None - crofai: Optional[Dict[str, Nullable[Any]]] = None + crofai: Optional[Dict[str, Any]] = None - crucible: Optional[Dict[str, Nullable[Any]]] = None + crucible: Optional[Dict[str, Any]] = None - crusoe: Optional[Dict[str, Nullable[Any]]] = None + crusoe: Optional[Dict[str, Any]] = None - darkbloom: Optional[Dict[str, Nullable[Any]]] = None + darkbloom: Optional[Dict[str, Any]] = None - decart: Optional[Dict[str, Nullable[Any]]] = None + decart: Optional[Dict[str, Any]] = None - deepgram: Optional[Dict[str, Nullable[Any]]] = None + deepgram: Optional[Dict[str, Any]] = None - deepinfra: Optional[Dict[str, Nullable[Any]]] = None + deepinfra: Optional[Dict[str, Any]] = None - deepseek: Optional[Dict[str, Nullable[Any]]] = None + deepseek: Optional[Dict[str, Any]] = None - dekallm: Optional[Dict[str, Nullable[Any]]] = None + dekallm: Optional[Dict[str, Any]] = None - digitalocean: Optional[Dict[str, Nullable[Any]]] = None + digitalocean: Optional[Dict[str, Any]] = None - enfer: Optional[Dict[str, Nullable[Any]]] = None + enfer: Optional[Dict[str, Any]] = None fake_provider: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="fake-provider") + Optional[Dict[str, Any]], pydantic.Field(alias="fake-provider") ] = None - featherless: Optional[Dict[str, Nullable[Any]]] = None + featherless: Optional[Dict[str, Any]] = None - fireworks: Optional[Dict[str, Nullable[Any]]] = None + fireworks: Optional[Dict[str, Any]] = None - friendli: Optional[Dict[str, Nullable[Any]]] = None + friendli: Optional[Dict[str, Any]] = None - gmicloud: Optional[Dict[str, Nullable[Any]]] = None + gmicloud: Optional[Dict[str, Any]] = None google_ai_studio: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="google-ai-studio") + Optional[Dict[str, Any]], pydantic.Field(alias="google-ai-studio") ] = None google_vertex: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="google-vertex") + Optional[Dict[str, Any]], pydantic.Field(alias="google-vertex") ] = None - gopomelo: Optional[Dict[str, Nullable[Any]]] = None + gopomelo: Optional[Dict[str, Any]] = None - groq: Optional[Dict[str, Nullable[Any]]] = None + groq: Optional[Dict[str, Any]] = None - heygen: Optional[Dict[str, Nullable[Any]]] = None + heygen: Optional[Dict[str, Any]] = None - huggingface: Optional[Dict[str, Nullable[Any]]] = None + huggingface: Optional[Dict[str, Any]] = None - hyperbolic: Optional[Dict[str, Nullable[Any]]] = None + hyperbolic: Optional[Dict[str, Any]] = None hyperbolic_quantized: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="hyperbolic-quantized") + Optional[Dict[str, Any]], pydantic.Field(alias="hyperbolic-quantized") ] = None - inception: Optional[Dict[str, Nullable[Any]]] = None + inception: Optional[Dict[str, Any]] = None - inceptron: Optional[Dict[str, Nullable[Any]]] = None + inceptron: Optional[Dict[str, Any]] = None inferact_vllm: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="inferact-vllm") + Optional[Dict[str, Any]], pydantic.Field(alias="inferact-vllm") ] = None inference_net: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="inference-net") + Optional[Dict[str, Any]], pydantic.Field(alias="inference-net") ] = None - infermatic: Optional[Dict[str, Nullable[Any]]] = None + infermatic: Optional[Dict[str, Any]] = None - inflection: Optional[Dict[str, Nullable[Any]]] = None + inflection: Optional[Dict[str, Any]] = None - inocloud: Optional[Dict[str, Nullable[Any]]] = None + inocloud: Optional[Dict[str, Any]] = None - io_net: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="io-net") - ] = None + io_net: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="io-net")] = None - ionstream: Optional[Dict[str, Nullable[Any]]] = None + ionstream: Optional[Dict[str, Any]] = None - klusterai: Optional[Dict[str, Nullable[Any]]] = None + klusterai: Optional[Dict[str, Any]] = None - krea: Optional[Dict[str, Nullable[Any]]] = None + krea: Optional[Dict[str, Any]] = None - lambda_: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="lambda") - ] = None + lambda_: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="lambda")] = None - lepton: Optional[Dict[str, Nullable[Any]]] = None + lepton: Optional[Dict[str, Any]] = None - liquid: Optional[Dict[str, Nullable[Any]]] = None + liquid: Optional[Dict[str, Any]] = None - lynn: Optional[Dict[str, Nullable[Any]]] = None + lynn: Optional[Dict[str, Any]] = None lynn_private: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="lynn-private") + Optional[Dict[str, Any]], pydantic.Field(alias="lynn-private") ] = None - mancer: Optional[Dict[str, Nullable[Any]]] = None + mancer: Optional[Dict[str, Any]] = None mancer_old: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="mancer-old") + Optional[Dict[str, Any]], pydantic.Field(alias="mancer-old") ] = None - mara: Optional[Dict[str, Nullable[Any]]] = None + mara: Optional[Dict[str, Any]] = None - meta: Optional[Dict[str, Nullable[Any]]] = None + meta: Optional[Dict[str, Any]] = None - minimax: Optional[Dict[str, Nullable[Any]]] = None + minimax: Optional[Dict[str, Any]] = None - mistral: Optional[Dict[str, Nullable[Any]]] = None + mistral: Optional[Dict[str, Any]] = None - modal: Optional[Dict[str, Nullable[Any]]] = None + modal: Optional[Dict[str, Any]] = None - modelrun: Optional[Dict[str, Nullable[Any]]] = None + modelrun: Optional[Dict[str, Any]] = None - modular: Optional[Dict[str, Nullable[Any]]] = None + modular: Optional[Dict[str, Any]] = None - moonshotai: Optional[Dict[str, Nullable[Any]]] = None + moonshotai: Optional[Dict[str, Any]] = None - morph: Optional[Dict[str, Nullable[Any]]] = None + morph: Optional[Dict[str, Any]] = None - ncompass: Optional[Dict[str, Nullable[Any]]] = None + ncompass: Optional[Dict[str, Any]] = None - nebius: Optional[Dict[str, Nullable[Any]]] = None + nebius: Optional[Dict[str, Any]] = None - nex_agi: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="nex-agi") - ] = None + nex_agi: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="nex-agi")] = None - nextbit: Optional[Dict[str, Nullable[Any]]] = None + nextbit: Optional[Dict[str, Any]] = None - nineteen: Optional[Dict[str, Nullable[Any]]] = None + nineteen: Optional[Dict[str, Any]] = None - novita: Optional[Dict[str, Nullable[Any]]] = None + novita: Optional[Dict[str, Any]] = None - nvidia: Optional[Dict[str, Nullable[Any]]] = None + nvidia: Optional[Dict[str, Any]] = None - octoai: Optional[Dict[str, Nullable[Any]]] = None + octoai: Optional[Dict[str, Any]] = None open_inference: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="open-inference") + Optional[Dict[str, Any]], pydantic.Field(alias="open-inference") ] = None - openai: Optional[Dict[str, Nullable[Any]]] = None + openai: Optional[Dict[str, Any]] = None - parasail: Optional[Dict[str, Nullable[Any]]] = None + parasail: Optional[Dict[str, Any]] = None - perceptron: Optional[Dict[str, Nullable[Any]]] = None + perceptron: Optional[Dict[str, Any]] = None - perplexity: Optional[Dict[str, Nullable[Any]]] = None + perplexity: Optional[Dict[str, Any]] = None - phala: Optional[Dict[str, Nullable[Any]]] = None + phala: Optional[Dict[str, Any]] = None - poolside: Optional[Dict[str, Nullable[Any]]] = None + poolside: Optional[Dict[str, Any]] = None - quiver: Optional[Dict[str, Nullable[Any]]] = None + quiver: Optional[Dict[str, Any]] = None - recraft: Optional[Dict[str, Nullable[Any]]] = None + recraft: Optional[Dict[str, Any]] = None - recursal: Optional[Dict[str, Nullable[Any]]] = None + recursal: Optional[Dict[str, Any]] = None - reflection: Optional[Dict[str, Nullable[Any]]] = None + reflection: Optional[Dict[str, Any]] = None - reka: Optional[Dict[str, Nullable[Any]]] = None + reka: Optional[Dict[str, Any]] = None - relace: Optional[Dict[str, Nullable[Any]]] = None + relace: Optional[Dict[str, Any]] = None - replicate: Optional[Dict[str, Nullable[Any]]] = None + replicate: Optional[Dict[str, Any]] = None sail_research: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="sail-research") + Optional[Dict[str, Any]], pydantic.Field(alias="sail-research") ] = None - sakana: Optional[Dict[str, Nullable[Any]]] = None + sakana: Optional[Dict[str, Any]] = None - sambanova: Optional[Dict[str, Nullable[Any]]] = None + sambanova: Optional[Dict[str, Any]] = None sambanova_cloaked: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="sambanova-cloaked") + Optional[Dict[str, Any]], pydantic.Field(alias="sambanova-cloaked") ] = None - seed: Optional[Dict[str, Nullable[Any]]] = None + seed: Optional[Dict[str, Any]] = None sf_compute: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="sf-compute") + Optional[Dict[str, Any]], pydantic.Field(alias="sf-compute") ] = None - siliconflow: Optional[Dict[str, Nullable[Any]]] = None + siliconflow: Optional[Dict[str, Any]] = None + + sourceful: Optional[Dict[str, Any]] = None - sourceful: Optional[Dict[str, Nullable[Any]]] = None + stealth: Optional[Dict[str, Any]] = None - stealth: Optional[Dict[str, Nullable[Any]]] = None + stepfun: Optional[Dict[str, Any]] = None - stepfun: Optional[Dict[str, Nullable[Any]]] = None + streamlake: Optional[Dict[str, Any]] = None - streamlake: Optional[Dict[str, Nullable[Any]]] = None + switchpoint: Optional[Dict[str, Any]] = None - switchpoint: Optional[Dict[str, Nullable[Any]]] = None + targon: Optional[Dict[str, Any]] = None - targon: Optional[Dict[str, Nullable[Any]]] = None + tencent: Optional[Dict[str, Any]] = None - tenstorrent: Optional[Dict[str, Nullable[Any]]] = None + tenstorrent: Optional[Dict[str, Any]] = None - together: Optional[Dict[str, Nullable[Any]]] = None + together: Optional[Dict[str, Any]] = None together_lite: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="together-lite") + Optional[Dict[str, Any]], pydantic.Field(alias="together-lite") ] = None - ubicloud: Optional[Dict[str, Nullable[Any]]] = None + ubicloud: Optional[Dict[str, Any]] = None - upstage: Optional[Dict[str, Nullable[Any]]] = None + upstage: Optional[Dict[str, Any]] = None - venice: Optional[Dict[str, Nullable[Any]]] = None + venice: Optional[Dict[str, Any]] = None - wafer: Optional[Dict[str, Nullable[Any]]] = None + wafer: Optional[Dict[str, Any]] = None - wandb: Optional[Dict[str, Nullable[Any]]] = None + wandb: Optional[Dict[str, Any]] = None - xai: Optional[Dict[str, Nullable[Any]]] = None + xai: Optional[Dict[str, Any]] = None - xiaomi: Optional[Dict[str, Nullable[Any]]] = None + xiaomi: Optional[Dict[str, Any]] = None - z_ai: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="z-ai") - ] = None + z_ai: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="z-ai")] = None @model_serializer(mode="wrap") def serialize_model(self, handler): @@ -578,6 +571,7 @@ def serialize_model(self, handler): "streamlake", "switchpoint", "targon", + "tencent", "tenstorrent", "together", "together-lite", @@ -617,14 +611,13 @@ def serialize_model(self, handler): ImageGenerationProviderPreferencesSortTypedDict = TypeAliasType( "ImageGenerationProviderPreferencesSortTypedDict", - Union[ProviderSortConfigTypedDict, ProviderSort, Any], + Union[ProviderSortConfigTypedDict, ProviderSort], ) r"""The sorting strategy to use for this request, if \"order\" is not specified. When set, no load balancing is performed.""" ImageGenerationProviderPreferencesSort = TypeAliasType( - "ImageGenerationProviderPreferencesSort", - Union[ProviderSortConfig, ProviderSort, Any], + "ImageGenerationProviderPreferencesSort", Union[ProviderSortConfig, ProviderSort] ) r"""The sorting strategy to use for this request, if \"order\" is not specified. When set, no load balancing is performed.""" diff --git a/src/openrouter/components/imagegenerationservertoolconfig_union.py b/src/openrouter/components/imagegenerationservertoolconfig_union.py index 58280b9d..29300b77 100644 --- a/src/openrouter/components/imagegenerationservertoolconfig_union.py +++ b/src/openrouter/components/imagegenerationservertoolconfig_union.py @@ -1,17 +1,15 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from openrouter.types import Nullable from typing import Any, List, Union from typing_extensions import TypeAliasType ImageGenerationServerToolConfigUnionTypedDict = TypeAliasType( - "ImageGenerationServerToolConfigUnionTypedDict", - Union[str, float, List[Nullable[Any]]], + "ImageGenerationServerToolConfigUnionTypedDict", Union[str, float, List[Any]] ) ImageGenerationServerToolConfigUnion = TypeAliasType( - "ImageGenerationServerToolConfigUnion", Union[str, float, List[Nullable[Any]]] + "ImageGenerationServerToolConfigUnion", Union[str, float, List[Any]] ) diff --git a/src/openrouter/components/inputs_union.py b/src/openrouter/components/inputs_union.py index 39681f4c..e0fac290 100644 --- a/src/openrouter/components/inputs_union.py +++ b/src/openrouter/components/inputs_union.py @@ -156,7 +156,7 @@ from openrouter.utils import get_discriminator import pydantic from pydantic import Discriminator, Tag, model_serializer -from typing import Any, List, Literal, Optional, Union +from typing import List, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -266,11 +266,11 @@ def serialize_model(self, handler): InputsContent2TypedDict = TypeAliasType( - "InputsContent2TypedDict", Union[List[InputsContent1TypedDict], str, Any] + "InputsContent2TypedDict", Union[List[InputsContent1TypedDict], str] ) -InputsContent2 = TypeAliasType("InputsContent2", Union[List[InputsContent1], str, Any]) +InputsContent2 = TypeAliasType("InputsContent2", Union[List[InputsContent1], str]) InputsPhaseFinalAnswer = Literal["final_answer",] @@ -280,14 +280,13 @@ def serialize_model(self, handler): InputsPhaseUnionTypedDict = TypeAliasType( - "InputsPhaseUnionTypedDict", - Union[InputsPhaseCommentary, InputsPhaseFinalAnswer, Any], + "InputsPhaseUnionTypedDict", Union[InputsPhaseCommentary, InputsPhaseFinalAnswer] ) r"""The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer` for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages.""" InputsPhaseUnion = TypeAliasType( - "InputsPhaseUnion", Union[InputsPhaseCommentary, InputsPhaseFinalAnswer, Any] + "InputsPhaseUnion", Union[InputsPhaseCommentary, InputsPhaseFinalAnswer] ) r"""The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer` for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages.""" diff --git a/src/openrouter/components/internalserverresponseerrordata.py b/src/openrouter/components/internalserverresponseerrordata.py index 6742b2ec..c3e202d3 100644 --- a/src/openrouter/components/internalserverresponseerrordata.py +++ b/src/openrouter/components/internalserverresponseerrordata.py @@ -18,7 +18,7 @@ class InternalServerResponseErrorDataTypedDict(TypedDict): code: int message: str - metadata: NotRequired[Nullable[Dict[str, Nullable[Any]]]] + metadata: NotRequired[Nullable[Dict[str, Any]]] class InternalServerResponseErrorData(BaseModel): @@ -28,7 +28,7 @@ class InternalServerResponseErrorData(BaseModel): message: str - metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + metadata: OptionalNullable[Dict[str, Any]] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/listendpointsresponse.py b/src/openrouter/components/listendpointsresponse.py index 9618ef27..f62b0891 100644 --- a/src/openrouter/components/listendpointsresponse.py +++ b/src/openrouter/components/listendpointsresponse.py @@ -3,42 +3,15 @@ from __future__ import annotations from .inputmodality import InputModality from .instructtype import InstructType +from .modelgroup import ModelGroup from .outputmodality import OutputModality from .publicendpoint import PublicEndpoint, PublicEndpointTypedDict -from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL, UnrecognizedStr +from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL from pydantic import model_serializer -from typing import List, Literal, Union +from typing import List from typing_extensions import TypedDict -Tokenizer = Union[ - Literal[ - "Router", - "Media", - "Other", - "GPT", - "Claude", - "Gemini", - "Gemma", - "Grok", - "Cohere", - "Nova", - "Qwen", - "Yi", - "DeepSeek", - "Mistral", - "Llama2", - "Llama3", - "Llama4", - "PaLM", - "RWKV", - "Qwen3", - ], - UnrecognizedStr, -] -r"""Tokenizer type used by the model""" - - class ArchitectureTypedDict(TypedDict): r"""Model architecture information""" @@ -50,7 +23,7 @@ class ArchitectureTypedDict(TypedDict): r"""Primary modality of the model""" output_modalities: List[OutputModality] r"""Supported output modalities""" - tokenizer: Nullable[Tokenizer] + tokenizer: Nullable[ModelGroup] class Architecture(BaseModel): @@ -68,7 +41,7 @@ class Architecture(BaseModel): output_modalities: List[OutputModality] r"""Supported output modalities""" - tokenizer: Nullable[Tokenizer] + tokenizer: Nullable[ModelGroup] @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/localshellcalloutputitem.py b/src/openrouter/components/localshellcalloutputitem.py index 24a827a2..c961db61 100644 --- a/src/openrouter/components/localshellcalloutputitem.py +++ b/src/openrouter/components/localshellcalloutputitem.py @@ -1,29 +1,19 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations +from .toolcallstatus import ToolCallStatus from openrouter.types import ( BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL, - UnrecognizedStr, ) from pydantic import model_serializer -from typing import Literal, Union +from typing import Literal from typing_extensions import NotRequired, TypedDict -LocalShellCallOutputItemStatus = Union[ - Literal[ - "in_progress", - "completed", - "incomplete", - ], - UnrecognizedStr, -] - - LocalShellCallOutputItemType = Literal["local_shell_call_output",] @@ -33,7 +23,7 @@ class LocalShellCallOutputItemTypedDict(TypedDict): id: str output: str type: LocalShellCallOutputItemType - status: NotRequired[Nullable[LocalShellCallOutputItemStatus]] + status: NotRequired[Nullable[ToolCallStatus]] class LocalShellCallOutputItem(BaseModel): @@ -45,7 +35,7 @@ class LocalShellCallOutputItem(BaseModel): type: LocalShellCallOutputItemType - status: OptionalNullable[LocalShellCallOutputItemStatus] = UNSET + status: OptionalNullable[ToolCallStatus] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/mcplisttoolsitem.py b/src/openrouter/components/mcplisttoolsitem.py index 710c3db1..72bc76b4 100644 --- a/src/openrouter/components/mcplisttoolsitem.py +++ b/src/openrouter/components/mcplisttoolsitem.py @@ -9,30 +9,30 @@ UNSET_SENTINEL, ) from pydantic import model_serializer -from typing import Any, Dict, List, Literal +from typing import Any, Dict, List, Literal, Optional from typing_extensions import NotRequired, TypedDict class McpListToolsItemToolTypedDict(TypedDict): - input_schema: Dict[str, Nullable[Any]] + input_schema: Dict[str, Any] name: str - annotations: NotRequired[Nullable[Any]] + annotations: NotRequired[Any] description: NotRequired[Nullable[str]] class McpListToolsItemTool(BaseModel): - input_schema: Dict[str, Nullable[Any]] + input_schema: Dict[str, Any] name: str - annotations: OptionalNullable[Any] = UNSET + annotations: Optional[Any] = None description: OptionalNullable[str] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["annotations", "description"]) - nullable_fields = set(["annotations", "description"]) + nullable_fields = set(["description"]) serialized = handler(self) m = {} diff --git a/src/openrouter/components/mcpservertool.py b/src/openrouter/components/mcpservertool.py index 2b0489b5..93c62f10 100644 --- a/src/openrouter/components/mcpservertool.py +++ b/src/openrouter/components/mcpservertool.py @@ -10,7 +10,7 @@ UnrecognizedStr, ) from pydantic import model_serializer -from typing import Any, Dict, List, Literal, Optional, Union +from typing import Dict, List, Literal, Optional, Union from typing_extensions import NotRequired, TypeAliasType, TypedDict @@ -42,13 +42,11 @@ def serialize_model(self, handler): AllowedToolsUnionTypedDict = TypeAliasType( - "AllowedToolsUnionTypedDict", Union[AllowedToolsTypedDict, List[str], Any] + "AllowedToolsUnionTypedDict", Union[AllowedToolsTypedDict, List[str]] ) -AllowedToolsUnion = TypeAliasType( - "AllowedToolsUnion", Union[AllowedTools, List[str], Any] -) +AllowedToolsUnion = TypeAliasType("AllowedToolsUnion", Union[AllowedTools, List[str]]) ConnectorID = Union[ @@ -149,13 +147,13 @@ def serialize_model(self, handler): RequireApprovalUnionTypedDict = TypeAliasType( "RequireApprovalUnionTypedDict", - Union[RequireApprovalTypedDict, RequireApprovalAlways, RequireApprovalNever, Any], + Union[RequireApprovalTypedDict, RequireApprovalAlways, RequireApprovalNever], ) RequireApprovalUnion = TypeAliasType( "RequireApprovalUnion", - Union[RequireApproval, RequireApprovalAlways, RequireApprovalNever, Any], + Union[RequireApproval, RequireApprovalAlways, RequireApprovalNever], ) diff --git a/src/openrouter/components/messagesadvisortoolresultblock.py b/src/openrouter/components/messagesadvisortoolresultblock.py index d52ac13f..67ae6d5b 100644 --- a/src/openrouter/components/messagesadvisortoolresultblock.py +++ b/src/openrouter/components/messagesadvisortoolresultblock.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from openrouter.types import BaseModel, Nullable +from openrouter.types import BaseModel from typing import Any, Dict, Literal from typing_extensions import TypedDict @@ -12,7 +12,7 @@ class MessagesAdvisorToolResultBlockTypedDict(TypedDict): r"""Advisor tool result from a prior assistant turn, replayed back to the model on the next turn. Mirrors the block Anthropic returns in assistant content when the `advisor_20260301` tool runs.""" - content: Dict[str, Nullable[Any]] + content: Dict[str, Any] tool_use_id: str type: MessagesAdvisorToolResultBlockType @@ -20,7 +20,7 @@ class MessagesAdvisorToolResultBlockTypedDict(TypedDict): class MessagesAdvisorToolResultBlock(BaseModel): r"""Advisor tool result from a prior assistant turn, replayed back to the model on the next turn. Mirrors the block Anthropic returns in assistant content when the `advisor_20260301` tool runs.""" - content: Dict[str, Nullable[Any]] + content: Dict[str, Any] tool_use_id: str diff --git a/src/openrouter/components/messagesfallbackparam.py b/src/openrouter/components/messagesfallbackparam.py index 05b04196..9026664f 100644 --- a/src/openrouter/components/messagesfallbackparam.py +++ b/src/openrouter/components/messagesfallbackparam.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from openrouter.types import BaseModel, Nullable +from openrouter.types import BaseModel import pydantic from pydantic import ConfigDict from typing import Any, Dict @@ -20,7 +20,7 @@ class MessagesFallbackParam(BaseModel): model_config = ConfigDict( populate_by_name=True, arbitrary_types_allowed=True, extra="allow" ) - __pydantic_extra__: Dict[str, Nullable[Any]] = pydantic.Field(init=False) + __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False) model: str diff --git a/src/openrouter/components/messagesmessageparam.py b/src/openrouter/components/messagesmessageparam.py index e556cb06..7c37d9ec 100644 --- a/src/openrouter/components/messagesmessageparam.py +++ b/src/openrouter/components/messagesmessageparam.py @@ -29,14 +29,7 @@ MessagesAdvisorToolResultBlock, MessagesAdvisorToolResultBlockTypedDict, ) -from openrouter.types import ( - BaseModel, - Nullable, - OptionalNullable, - UNSET, - UNSET_SENTINEL, - UnrecognizedStr, -) +from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL, UnrecognizedStr from openrouter.utils import get_discriminator from pydantic import Discriminator, Tag, model_serializer from typing import Any, List, Literal, Optional, Union @@ -175,7 +168,7 @@ class ContentServerToolUseTypedDict(TypedDict): type: TypeServerToolUse cache_control: NotRequired[AnthropicCacheControlDirectiveTypedDict] r"""Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.""" - input: NotRequired[Nullable[Any]] + input: NotRequired[Any] class ContentServerToolUse(BaseModel): @@ -188,29 +181,20 @@ class ContentServerToolUse(BaseModel): cache_control: Optional[AnthropicCacheControlDirective] = None r"""Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.""" - input: OptionalNullable[Any] = UNSET + input: Optional[Any] = None @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["cache_control", "input"]) - nullable_fields = set(["input"]) 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)) - is_nullable_and_explicitly_set = ( - k in nullable_fields - and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member - ) if val != UNSET_SENTINEL: - if ( - val is not None - or k not in optional_fields - or is_nullable_and_explicitly_set - ): + if val is not None or k not in optional_fields: m[k] = val return m @@ -347,7 +331,7 @@ class ContentToolUseTypedDict(TypedDict): type: TypeToolUse cache_control: NotRequired[AnthropicCacheControlDirectiveTypedDict] r"""Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.""" - input: NotRequired[Nullable[Any]] + input: NotRequired[Any] class ContentToolUse(BaseModel): @@ -360,29 +344,20 @@ class ContentToolUse(BaseModel): cache_control: Optional[AnthropicCacheControlDirective] = None r"""Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.""" - input: OptionalNullable[Any] = UNSET + input: Optional[Any] = None @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["cache_control", "input"]) - nullable_fields = set(["input"]) 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)) - is_nullable_and_explicitly_set = ( - k in nullable_fields - and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member - ) if val != UNSET_SENTINEL: - if ( - val is not None - or k not in optional_fields - or is_nullable_and_explicitly_set - ): + if val is not None or k not in optional_fields: m[k] = val return m diff --git a/src/openrouter/components/messagesoutputconfig.py b/src/openrouter/components/messagesoutputconfig.py index 9b033dd8..7e69d1f7 100644 --- a/src/openrouter/components/messagesoutputconfig.py +++ b/src/openrouter/components/messagesoutputconfig.py @@ -34,14 +34,14 @@ class MessagesOutputConfigFormatTypedDict(TypedDict): r"""A schema to specify Claude's output format in responses. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs).""" - schema_: Dict[str, Nullable[Any]] + schema_: Dict[str, Any] type: MessagesOutputConfigTypeJSONSchema class MessagesOutputConfigFormat(BaseModel): r"""A schema to specify Claude's output format in responses. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs).""" - schema_: Annotated[Dict[str, Nullable[Any]], pydantic.Field(alias="schema")] + schema_: Annotated[Dict[str, Any], pydantic.Field(alias="schema")] type: MessagesOutputConfigTypeJSONSchema diff --git a/src/openrouter/components/messagesrequest.py b/src/openrouter/components/messagesrequest.py index b4d8f657..96e50f1f 100644 --- a/src/openrouter/components/messagesrequest.py +++ b/src/openrouter/components/messagesrequest.py @@ -6,7 +6,6 @@ AnthropicCacheControlDirective, AnthropicCacheControlDirectiveTypedDict, ) -from .anthropiccachecontrolttl import AnthropicCacheControlTTL from .anthropicinputtokensclearatleast import ( AnthropicInputTokensClearAtLeast, AnthropicInputTokensClearAtLeastTypedDict, @@ -196,11 +195,11 @@ def serialize_model(self, handler): ClearToolInputsTypedDict = TypeAliasType( - "ClearToolInputsTypedDict", Union[bool, List[str], Any] + "ClearToolInputsTypedDict", Union[bool, List[str]] ) -ClearToolInputs = TypeAliasType("ClearToolInputs", Union[bool, List[str], Any]) +ClearToolInputs = TypeAliasType("ClearToolInputs", Union[bool, List[str]]) TriggerTypedDict = TypeAliasType( @@ -642,7 +641,7 @@ class MessagesRequestTool(BaseModel): model_config = ConfigDict( populate_by_name=True, arbitrary_types_allowed=True, extra="allow" ) - __pydantic_extra__: Dict[str, Nullable[Any]] = pydantic.Field(init=False) + __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False) type: str @@ -655,40 +654,6 @@ def additional_properties(self, value): self.__pydantic_extra__ = value # pyright: ignore[reportIncompatibleVariableOverride] -ToolTypeEphemeral = Literal["ephemeral",] - - -class CachingTypedDict(TypedDict): - r"""Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.""" - - type: ToolTypeEphemeral - ttl: NotRequired[AnthropicCacheControlTTL] - - -class Caching(BaseModel): - r"""Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.""" - - type: ToolTypeEphemeral - - ttl: Optional[AnthropicCacheControlTTL] = None - - @model_serializer(mode="wrap") - def serialize_model(self, handler): - optional_fields = set(["ttl"]) - 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: - if val is not None or k not in optional_fields: - m[k] = val - - return m - - NameAdvisor = Literal["advisor",] @@ -702,7 +667,7 @@ class ToolAdvisor20260301TypedDict(TypedDict): allowed_callers: NotRequired[List[AnthropicAllowedCallers]] cache_control: NotRequired[AnthropicCacheControlDirectiveTypedDict] r"""Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.""" - caching: NotRequired[Nullable[CachingTypedDict]] + caching: NotRequired[Nullable[AnthropicCacheControlDirectiveTypedDict]] defer_loading: NotRequired[bool] max_uses: NotRequired[int] @@ -719,7 +684,7 @@ class ToolAdvisor20260301(BaseModel): cache_control: Optional[AnthropicCacheControlDirective] = None r"""Enable automatic prompt caching. When set at the top level, the system automatically applies cache breakpoints to the last cacheable block in the request. When set on an individual content block, it marks an explicit cache breakpoint; block-level markers also work on OpenAI models that support explicit prompt caching — OpenRouter converts them to the provider's native format.""" - caching: OptionalNullable[Caching] = UNSET + caching: OptionalNullable[AnthropicCacheControlDirective] = UNSET defer_loading: Optional[bool] = None @@ -972,7 +937,7 @@ def serialize_model(self, handler): class InputSchemaTypedDict(TypedDict): - properties: NotRequired[Nullable[Any]] + properties: NotRequired[Any] required: NotRequired[Nullable[List[str]]] type: NotRequired[str] @@ -981,9 +946,9 @@ class InputSchema(BaseModel): model_config = ConfigDict( populate_by_name=True, arbitrary_types_allowed=True, extra="allow" ) - __pydantic_extra__: Dict[str, Nullable[Any]] = pydantic.Field(init=False) + __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False) - properties: OptionalNullable[Any] = UNSET + properties: Optional[Any] = None required: OptionalNullable[List[str]] = UNSET @@ -1000,7 +965,7 @@ def additional_properties(self, value): @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["properties", "required", "type"]) - nullable_fields = set(["properties", "required"]) + nullable_fields = set(["required"]) serialized = handler(self) m = {} diff --git a/src/openrouter/components/namespacefunctiontool.py b/src/openrouter/components/namespacefunctiontool.py index 76f0bdbb..7973c0a8 100644 --- a/src/openrouter/components/namespacefunctiontool.py +++ b/src/openrouter/components/namespacefunctiontool.py @@ -34,8 +34,8 @@ class NamespaceFunctionToolTypedDict(TypedDict): allowed_callers: NotRequired[Nullable[List[AllowedCaller]]] defer_loading: NotRequired[bool] description: NotRequired[Nullable[str]] - output_schema: NotRequired[Nullable[Dict[str, Nullable[Any]]]] - parameters: NotRequired[Nullable[Dict[str, Nullable[Any]]]] + output_schema: NotRequired[Nullable[Dict[str, Any]]] + parameters: NotRequired[Nullable[Dict[str, Any]]] strict: NotRequired[Nullable[bool]] @@ -52,9 +52,9 @@ class NamespaceFunctionTool(BaseModel): description: OptionalNullable[str] = UNSET - output_schema: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + output_schema: OptionalNullable[Dict[str, Any]] = UNSET - parameters: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + parameters: OptionalNullable[Dict[str, Any]] = UNSET strict: OptionalNullable[bool] = UNSET diff --git a/src/openrouter/components/notfoundresponseerrordata.py b/src/openrouter/components/notfoundresponseerrordata.py index b7549df7..7f9b6c70 100644 --- a/src/openrouter/components/notfoundresponseerrordata.py +++ b/src/openrouter/components/notfoundresponseerrordata.py @@ -18,7 +18,7 @@ class NotFoundResponseErrorDataTypedDict(TypedDict): code: int message: str - metadata: NotRequired[Nullable[Dict[str, Nullable[Any]]]] + metadata: NotRequired[Nullable[Dict[str, Any]]] class NotFoundResponseErrorData(BaseModel): @@ -28,7 +28,7 @@ class NotFoundResponseErrorData(BaseModel): message: str - metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + metadata: OptionalNullable[Dict[str, Any]] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/openairesponsefunctiontoolcalloutput.py b/src/openrouter/components/openairesponsefunctiontoolcalloutput.py index af8258c6..d946fa52 100644 --- a/src/openrouter/components/openairesponsefunctiontoolcalloutput.py +++ b/src/openrouter/components/openairesponsefunctiontoolcalloutput.py @@ -4,6 +4,7 @@ from .inputfile import InputFile, InputFileTypedDict from .inputimage import InputImage, InputImageTypedDict from .inputtext import InputText, InputTextTypedDict +from .toolcallstatus import ToolCallStatus from functools import partial from openrouter.types import ( BaseModel, @@ -11,7 +12,6 @@ OptionalNullable, UNSET, UNSET_SENTINEL, - UnrecognizedStr, ) from openrouter.utils.unions import parse_open_union from pydantic import ConfigDict, model_serializer @@ -74,16 +74,6 @@ class UnknownOpenAIResponseFunctionToolCallOutputOutput1(BaseModel): ) -OpenAIResponseFunctionToolCallOutputStatus = Union[ - Literal[ - "in_progress", - "completed", - "incomplete", - ], - UnrecognizedStr, -] - - OpenAIResponseFunctionToolCallOutputType = Literal["function_call_output",] @@ -92,7 +82,7 @@ class OpenAIResponseFunctionToolCallOutputTypedDict(TypedDict): output: OpenAIResponseFunctionToolCallOutputOutput2TypedDict type: OpenAIResponseFunctionToolCallOutputType id: NotRequired[Nullable[str]] - status: NotRequired[Nullable[OpenAIResponseFunctionToolCallOutputStatus]] + status: NotRequired[Nullable[ToolCallStatus]] class OpenAIResponseFunctionToolCallOutput(BaseModel): @@ -104,7 +94,7 @@ class OpenAIResponseFunctionToolCallOutput(BaseModel): id: OptionalNullable[str] = UNSET - status: OptionalNullable[OpenAIResponseFunctionToolCallOutputStatus] = UNSET + status: OptionalNullable[ToolCallStatus] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/openresponsesresult.py b/src/openrouter/components/openresponsesresult.py index d3013e2c..bf2d31cf 100644 --- a/src/openrouter/components/openresponsesresult.py +++ b/src/openrouter/components/openresponsesresult.py @@ -40,11 +40,11 @@ PreviewWebSearchServerToolTypedDict, ) from .responseserrorfield import ResponsesErrorField, ResponsesErrorFieldTypedDict +from .servertoolusedetails import ServerToolUseDetails, ServerToolUseDetailsTypedDict from .shellservertool import ShellServerTool, ShellServerToolTypedDict from .storedprompttemplate import StoredPromptTemplate, StoredPromptTemplateTypedDict from .textextendedconfig import TextExtendedConfig, TextExtendedConfigTypedDict from .truncation import Truncation -from .usage import Usage, UsageTypedDict from .websearchservertool import WebSearchServerTool, WebSearchServerToolTypedDict from functools import partial from openrouter.types import ( @@ -71,7 +71,7 @@ class OpenResponsesResultToolFunctionTypedDict(TypedDict): r"""Function tool definition""" name: str - parameters: Nullable[Dict[str, Nullable[Any]]] + parameters: Nullable[Dict[str, Any]] type: OpenResponsesResultType description: NotRequired[Nullable[str]] strict: NotRequired[Nullable[bool]] @@ -82,7 +82,7 @@ class OpenResponsesResultToolFunction(BaseModel): name: str - parameters: Nullable[Dict[str, Nullable[Any]]] + parameters: Nullable[Dict[str, Any]] type: OpenResponsesResultType @@ -198,6 +198,154 @@ class UnknownOpenResponsesResultToolUnion(BaseModel): ] +class InputTokensDetailsTypedDict(TypedDict): + cached_tokens: int + cache_write_tokens: NotRequired[Nullable[int]] + + +class InputTokensDetails(BaseModel): + cached_tokens: int + + cache_write_tokens: OptionalNullable[int] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["cache_write_tokens"]) + nullable_fields = set(["cache_write_tokens"]) + 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m + + +class OutputTokensDetailsTypedDict(TypedDict): + reasoning_tokens: int + + +class OutputTokensDetails(BaseModel): + reasoning_tokens: int + + +class UsageCostDetailsTypedDict(TypedDict): + upstream_inference_input_cost: float + upstream_inference_output_cost: float + upstream_inference_cost: NotRequired[Nullable[float]] + + +class UsageCostDetails(BaseModel): + upstream_inference_input_cost: float + + upstream_inference_output_cost: float + + upstream_inference_cost: OptionalNullable[float] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["upstream_inference_cost"]) + nullable_fields = set(["upstream_inference_cost"]) + 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m + + +class UsageTypedDict(TypedDict): + input_tokens: int + input_tokens_details: InputTokensDetailsTypedDict + output_tokens: int + output_tokens_details: OutputTokensDetailsTypedDict + total_tokens: int + cost: NotRequired[Nullable[float]] + r"""Cost of the completion""" + cost_details: NotRequired[UsageCostDetailsTypedDict] + is_byok: NotRequired[bool] + r"""Whether a request was made using a Bring Your Own Key configuration""" + server_tool_use_details: NotRequired[Nullable[ServerToolUseDetailsTypedDict]] + r"""Usage for server-side tool execution (e.g., web search)""" + + +class Usage(BaseModel): + input_tokens: int + + input_tokens_details: InputTokensDetails + + output_tokens: int + + output_tokens_details: OutputTokensDetails + + total_tokens: int + + cost: OptionalNullable[float] = UNSET + r"""Cost of the completion""" + + cost_details: Optional[UsageCostDetails] = None + + is_byok: Optional[bool] = None + r"""Whether a request was made using a Bring Your Own Key configuration""" + + server_tool_use_details: OptionalNullable[ServerToolUseDetails] = UNSET + r"""Usage for server-side tool execution (e.g., web search)""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["cost", "cost_details", "is_byok", "server_tool_use_details"] + ) + nullable_fields = set(["cost", "server_tool_use_details"]) + 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m + + class OpenResponsesResultTypedDict(TypedDict): r"""Complete non-streaming response from the Responses API""" diff --git a/src/openrouter/components/outputcomputercallitem.py b/src/openrouter/components/outputcomputercallitem.py index f13810cd..7c877ba6 100644 --- a/src/openrouter/components/outputcomputercallitem.py +++ b/src/openrouter/components/outputcomputercallitem.py @@ -1,14 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from openrouter.types import ( - BaseModel, - Nullable, - OptionalNullable, - UNSET, - UNSET_SENTINEL, - UnrecognizedStr, -) +from openrouter.types import BaseModel, UNSET_SENTINEL, UnrecognizedStr from pydantic import model_serializer from typing import Any, List, Literal, Optional, Union from typing_extensions import NotRequired, TypedDict @@ -46,7 +39,7 @@ class OutputComputerCallItemTypedDict(TypedDict): pending_safety_checks: List[PendingSafetyCheckTypedDict] status: OutputComputerCallItemStatus type: OutputComputerCallItemType - action: NotRequired[Nullable[Any]] + action: NotRequired[Any] id: NotRequired[str] @@ -59,31 +52,22 @@ class OutputComputerCallItem(BaseModel): type: OutputComputerCallItemType - action: OptionalNullable[Any] = UNSET + action: Optional[Any] = None id: Optional[str] = None @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["action", "id"]) - nullable_fields = set(["action"]) 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)) - is_nullable_and_explicitly_set = ( - k in nullable_fields - and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member - ) if val != UNSET_SENTINEL: - if ( - val is not None - or k not in optional_fields - or is_nullable_and_explicitly_set - ): + if val is not None or k not in optional_fields: m[k] = val return m diff --git a/src/openrouter/components/outputmemoryservertoolitem.py b/src/openrouter/components/outputmemoryservertoolitem.py index a7be8fb1..775551b0 100644 --- a/src/openrouter/components/outputmemoryservertoolitem.py +++ b/src/openrouter/components/outputmemoryservertoolitem.py @@ -2,14 +2,7 @@ from __future__ import annotations from .toolcallstatus import ToolCallStatus -from openrouter.types import ( - BaseModel, - Nullable, - OptionalNullable, - UNSET, - UNSET_SENTINEL, - UnrecognizedStr, -) +from openrouter.types import BaseModel, UNSET_SENTINEL, UnrecognizedStr from pydantic import model_serializer from typing import Any, Literal, Optional, Union from typing_extensions import NotRequired, TypedDict @@ -36,7 +29,7 @@ class OutputMemoryServerToolItemTypedDict(TypedDict): action: NotRequired[ActionEnum] id: NotRequired[str] key: NotRequired[str] - value: NotRequired[Nullable[Any]] + value: NotRequired[Any] class OutputMemoryServerToolItem(BaseModel): @@ -52,29 +45,20 @@ class OutputMemoryServerToolItem(BaseModel): key: Optional[str] = None - value: OptionalNullable[Any] = UNSET + value: Optional[Any] = None @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["action", "id", "key", "value"]) - nullable_fields = set(["value"]) 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)) - is_nullable_and_explicitly_set = ( - k in nullable_fields - and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member - ) if val != UNSET_SENTINEL: - if ( - val is not None - or k not in optional_fields - or is_nullable_and_explicitly_set - ): + if val is not None or k not in optional_fields: m[k] = val return m diff --git a/src/openrouter/components/outputmessage.py b/src/openrouter/components/outputmessage.py index 4fff8bd8..72d0dee9 100644 --- a/src/openrouter/components/outputmessage.py +++ b/src/openrouter/components/outputmessage.py @@ -67,14 +67,14 @@ class UnknownOutputMessageContent(BaseModel): OutputMessagePhaseUnionTypedDict = TypeAliasType( "OutputMessagePhaseUnionTypedDict", - Union[OutputMessagePhaseCommentary, OutputMessagePhaseFinalAnswer, Any], + Union[OutputMessagePhaseCommentary, OutputMessagePhaseFinalAnswer], ) r"""The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer` for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages.""" OutputMessagePhaseUnion = TypeAliasType( "OutputMessagePhaseUnion", - Union[OutputMessagePhaseCommentary, OutputMessagePhaseFinalAnswer, Any], + Union[OutputMessagePhaseCommentary, OutputMessagePhaseFinalAnswer], ) r"""The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer` for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages.""" diff --git a/src/openrouter/components/outputmessageitem.py b/src/openrouter/components/outputmessageitem.py index 3a2a1f8c..cd48453a 100644 --- a/src/openrouter/components/outputmessageitem.py +++ b/src/openrouter/components/outputmessageitem.py @@ -69,14 +69,14 @@ class UnknownOutputMessageItemContent(BaseModel): OutputMessageItemPhaseUnionTypedDict = TypeAliasType( "OutputMessageItemPhaseUnionTypedDict", - Union[OutputMessageItemPhaseCommentary, OutputMessageItemPhaseFinalAnswer, Any], + Union[OutputMessageItemPhaseCommentary, OutputMessageItemPhaseFinalAnswer], ) r"""The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer` for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages.""" OutputMessageItemPhaseUnion = TypeAliasType( "OutputMessageItemPhaseUnion", - Union[OutputMessageItemPhaseCommentary, OutputMessageItemPhaseFinalAnswer, Any], + Union[OutputMessageItemPhaseCommentary, OutputMessageItemPhaseFinalAnswer], ) r"""The phase of an assistant message. Use `commentary` for an intermediate assistant message and `final_answer` for the final assistant message. For follow-up requests with models like `gpt-5.3-codex` and later, preserve and resend phase on all assistant messages. Omitting it can degrade performance. Not used for user messages.""" diff --git a/src/openrouter/components/payloadtoolargeresponseerrordata.py b/src/openrouter/components/payloadtoolargeresponseerrordata.py index e644b941..97fa01df 100644 --- a/src/openrouter/components/payloadtoolargeresponseerrordata.py +++ b/src/openrouter/components/payloadtoolargeresponseerrordata.py @@ -18,7 +18,7 @@ class PayloadTooLargeResponseErrorDataTypedDict(TypedDict): code: int message: str - metadata: NotRequired[Nullable[Dict[str, Nullable[Any]]]] + metadata: NotRequired[Nullable[Dict[str, Any]]] class PayloadTooLargeResponseErrorData(BaseModel): @@ -28,7 +28,7 @@ class PayloadTooLargeResponseErrorData(BaseModel): message: str - metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + metadata: OptionalNullable[Dict[str, Any]] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/paymentrequiredresponseerrordata.py b/src/openrouter/components/paymentrequiredresponseerrordata.py index 2ddc388d..303abb4a 100644 --- a/src/openrouter/components/paymentrequiredresponseerrordata.py +++ b/src/openrouter/components/paymentrequiredresponseerrordata.py @@ -18,7 +18,7 @@ class PaymentRequiredResponseErrorDataTypedDict(TypedDict): code: int message: str - metadata: NotRequired[Nullable[Dict[str, Nullable[Any]]]] + metadata: NotRequired[Nullable[Dict[str, Any]]] class PaymentRequiredResponseErrorData(BaseModel): @@ -28,7 +28,7 @@ class PaymentRequiredResponseErrorData(BaseModel): message: str - metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + metadata: OptionalNullable[Dict[str, Any]] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/pipelinestage.py b/src/openrouter/components/pipelinestage.py index ddecb911..9f4d0c3a 100644 --- a/src/openrouter/components/pipelinestage.py +++ b/src/openrouter/components/pipelinestage.py @@ -19,7 +19,7 @@ class PipelineStageTypedDict(TypedDict): type: PipelineStageType r"""Categorical kind of a pipeline stage. Multiple plugins can share a type (e.g. all guardrail-level plugins emit `guardrail`); the `name` field disambiguates which plugin emitted it.""" cost_usd: NotRequired[Nullable[float]] - data: NotRequired[Dict[str, Nullable[Any]]] + data: NotRequired[Dict[str, Any]] guardrail_id: NotRequired[str] guardrail_scope: NotRequired[str] summary: NotRequired[str] @@ -33,7 +33,7 @@ class PipelineStage(BaseModel): cost_usd: OptionalNullable[float] = UNSET - data: Optional[Dict[str, Nullable[Any]]] = None + data: Optional[Dict[str, Any]] = None guardrail_id: Optional[str] = None diff --git a/src/openrouter/components/preferredmaxlatency.py b/src/openrouter/components/preferredmaxlatency.py index 523f7c9f..3081e68d 100644 --- a/src/openrouter/components/preferredmaxlatency.py +++ b/src/openrouter/components/preferredmaxlatency.py @@ -5,17 +5,17 @@ PercentileLatencyCutoffs, PercentileLatencyCutoffsTypedDict, ) -from typing import Any, Union +from typing import Union from typing_extensions import TypeAliasType PreferredMaxLatencyTypedDict = TypeAliasType( - "PreferredMaxLatencyTypedDict", Union[PercentileLatencyCutoffsTypedDict, float, Any] + "PreferredMaxLatencyTypedDict", Union[PercentileLatencyCutoffsTypedDict, float] ) r"""Preferred maximum latency (in seconds). Can be a number (applies to p50) or an object with percentile-specific cutoffs. Endpoints above the threshold(s) may still be used, but are deprioritized in routing. When using fallback models, this may cause a fallback model to be used instead of the primary model if it meets the threshold.""" PreferredMaxLatency = TypeAliasType( - "PreferredMaxLatency", Union[PercentileLatencyCutoffs, float, Any] + "PreferredMaxLatency", Union[PercentileLatencyCutoffs, float] ) r"""Preferred maximum latency (in seconds). Can be a number (applies to p50) or an object with percentile-specific cutoffs. Endpoints above the threshold(s) may still be used, but are deprioritized in routing. When using fallback models, this may cause a fallback model to be used instead of the primary model if it meets the threshold.""" diff --git a/src/openrouter/components/preferredminthroughput.py b/src/openrouter/components/preferredminthroughput.py index ceb4be7e..99191f55 100644 --- a/src/openrouter/components/preferredminthroughput.py +++ b/src/openrouter/components/preferredminthroughput.py @@ -5,18 +5,18 @@ PercentileThroughputCutoffs, PercentileThroughputCutoffsTypedDict, ) -from typing import Any, Union +from typing import Union from typing_extensions import TypeAliasType PreferredMinThroughputTypedDict = TypeAliasType( "PreferredMinThroughputTypedDict", - Union[PercentileThroughputCutoffsTypedDict, float, Any], + Union[PercentileThroughputCutoffsTypedDict, float], ) r"""Preferred minimum throughput (in tokens per second). Can be a number (applies to p50) or an object with percentile-specific cutoffs. Endpoints below the threshold(s) may still be used, but are deprioritized in routing. When using fallback models, this may cause a fallback model to be used instead of the primary model if it meets the threshold.""" PreferredMinThroughput = TypeAliasType( - "PreferredMinThroughput", Union[PercentileThroughputCutoffs, float, Any] + "PreferredMinThroughput", Union[PercentileThroughputCutoffs, float] ) r"""Preferred minimum throughput (in tokens per second). Can be a number (applies to p50) or an object with percentile-specific cutoffs. Endpoints below the threshold(s) may still be used, but are deprioritized in routing. When using fallback models, this may cause a fallback model to be used instead of the primary model if it meets the threshold.""" diff --git a/src/openrouter/components/presetdesignatedversion.py b/src/openrouter/components/presetdesignatedversion.py index 504c90ea..a0a2e246 100644 --- a/src/openrouter/components/presetdesignatedversion.py +++ b/src/openrouter/components/presetdesignatedversion.py @@ -10,7 +10,7 @@ class PresetDesignatedVersionTypedDict(TypedDict): r"""A specific version of a preset, containing config and optional system prompt.""" - config: Dict[str, Nullable[Any]] + config: Dict[str, Any] created_at: str creator_id: str id: str @@ -23,7 +23,7 @@ class PresetDesignatedVersionTypedDict(TypedDict): class PresetDesignatedVersion(BaseModel): r"""A specific version of a preset, containing config and optional system prompt.""" - config: Dict[str, Nullable[Any]] + config: Dict[str, Any] created_at: str diff --git a/src/openrouter/components/providername.py b/src/openrouter/components/providername.py index 9d36769a..a779333a 100644 --- a/src/openrouter/components/providername.py +++ b/src/openrouter/components/providername.py @@ -7,7 +7,6 @@ ProviderName = Union[ Literal[ - "Meta", "AkashML", "AI21", "AionLabs", @@ -58,6 +57,7 @@ "Liquid", "Mara", "Mancer 2", + "Meta", "Minimax", "ModelRun", "Mistral", @@ -90,6 +90,7 @@ "Stealth", "StreamLake", "Switchpoint", + "Tencent", "Tenstorrent", "Together", "Upstage", diff --git a/src/openrouter/components/provideroptions.py b/src/openrouter/components/provideroptions.py index 5d581eb9..2d7a313b 100644 --- a/src/openrouter/components/provideroptions.py +++ b/src/openrouter/components/provideroptions.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL +from openrouter.types import BaseModel, UNSET_SENTINEL import pydantic from pydantic import model_serializer from typing import Any, Dict, Optional @@ -11,427 +11,420 @@ class ProviderOptionsTypedDict(TypedDict): r"""Provider-specific options keyed by provider slug. Only options for the matched provider are forwarded; the rest are ignored. Unrecognized keys are silently dropped.""" - oneai: NotRequired[Dict[str, Nullable[Any]]] - ai21: NotRequired[Dict[str, Nullable[Any]]] - aion_labs: NotRequired[Dict[str, Nullable[Any]]] - akashml: NotRequired[Dict[str, Nullable[Any]]] - alibaba: NotRequired[Dict[str, Nullable[Any]]] - amazon_bedrock: NotRequired[Dict[str, Nullable[Any]]] - amazon_nova: NotRequired[Dict[str, Nullable[Any]]] - ambient: NotRequired[Dict[str, Nullable[Any]]] - anthropic: NotRequired[Dict[str, Nullable[Any]]] - anyscale: NotRequired[Dict[str, Nullable[Any]]] - arcee_ai: NotRequired[Dict[str, Nullable[Any]]] - atlas_cloud: NotRequired[Dict[str, Nullable[Any]]] - atoma: NotRequired[Dict[str, Nullable[Any]]] - avian: NotRequired[Dict[str, Nullable[Any]]] - azure: NotRequired[Dict[str, Nullable[Any]]] - baidu: NotRequired[Dict[str, Nullable[Any]]] - baseten: NotRequired[Dict[str, Nullable[Any]]] - black_forest_labs: NotRequired[Dict[str, Nullable[Any]]] - byteplus: NotRequired[Dict[str, Nullable[Any]]] - centml: NotRequired[Dict[str, Nullable[Any]]] - cerebras: NotRequired[Dict[str, Nullable[Any]]] - chutes: NotRequired[Dict[str, Nullable[Any]]] - cirrascale: NotRequired[Dict[str, Nullable[Any]]] - clarifai: NotRequired[Dict[str, Nullable[Any]]] - cloudflare: NotRequired[Dict[str, Nullable[Any]]] - cohere: NotRequired[Dict[str, Nullable[Any]]] - crofai: NotRequired[Dict[str, Nullable[Any]]] - crucible: NotRequired[Dict[str, Nullable[Any]]] - crusoe: NotRequired[Dict[str, Nullable[Any]]] - darkbloom: NotRequired[Dict[str, Nullable[Any]]] - decart: NotRequired[Dict[str, Nullable[Any]]] - deepgram: NotRequired[Dict[str, Nullable[Any]]] - deepinfra: NotRequired[Dict[str, Nullable[Any]]] - deepseek: NotRequired[Dict[str, Nullable[Any]]] - dekallm: NotRequired[Dict[str, Nullable[Any]]] - digitalocean: NotRequired[Dict[str, Nullable[Any]]] - enfer: NotRequired[Dict[str, Nullable[Any]]] - fake_provider: NotRequired[Dict[str, Nullable[Any]]] - featherless: NotRequired[Dict[str, Nullable[Any]]] - fireworks: NotRequired[Dict[str, Nullable[Any]]] - friendli: NotRequired[Dict[str, Nullable[Any]]] - gmicloud: NotRequired[Dict[str, Nullable[Any]]] - google_ai_studio: NotRequired[Dict[str, Nullable[Any]]] - google_vertex: NotRequired[Dict[str, Nullable[Any]]] - gopomelo: NotRequired[Dict[str, Nullable[Any]]] - groq: NotRequired[Dict[str, Nullable[Any]]] - heygen: NotRequired[Dict[str, Nullable[Any]]] - huggingface: NotRequired[Dict[str, Nullable[Any]]] - hyperbolic: NotRequired[Dict[str, Nullable[Any]]] - hyperbolic_quantized: NotRequired[Dict[str, Nullable[Any]]] - inception: NotRequired[Dict[str, Nullable[Any]]] - inceptron: NotRequired[Dict[str, Nullable[Any]]] - inferact_vllm: NotRequired[Dict[str, Nullable[Any]]] - inference_net: NotRequired[Dict[str, Nullable[Any]]] - infermatic: NotRequired[Dict[str, Nullable[Any]]] - inflection: NotRequired[Dict[str, Nullable[Any]]] - inocloud: NotRequired[Dict[str, Nullable[Any]]] - io_net: NotRequired[Dict[str, Nullable[Any]]] - ionstream: NotRequired[Dict[str, Nullable[Any]]] - klusterai: NotRequired[Dict[str, Nullable[Any]]] - krea: NotRequired[Dict[str, Nullable[Any]]] - lambda_: NotRequired[Dict[str, Nullable[Any]]] - lepton: NotRequired[Dict[str, Nullable[Any]]] - liquid: NotRequired[Dict[str, Nullable[Any]]] - lynn: NotRequired[Dict[str, Nullable[Any]]] - lynn_private: NotRequired[Dict[str, Nullable[Any]]] - mancer: NotRequired[Dict[str, Nullable[Any]]] - mancer_old: NotRequired[Dict[str, Nullable[Any]]] - mara: NotRequired[Dict[str, Nullable[Any]]] - meta: NotRequired[Dict[str, Nullable[Any]]] - minimax: NotRequired[Dict[str, Nullable[Any]]] - mistral: NotRequired[Dict[str, Nullable[Any]]] - modal: NotRequired[Dict[str, Nullable[Any]]] - modelrun: NotRequired[Dict[str, Nullable[Any]]] - modular: NotRequired[Dict[str, Nullable[Any]]] - moonshotai: NotRequired[Dict[str, Nullable[Any]]] - morph: NotRequired[Dict[str, Nullable[Any]]] - ncompass: NotRequired[Dict[str, Nullable[Any]]] - nebius: NotRequired[Dict[str, Nullable[Any]]] - nex_agi: NotRequired[Dict[str, Nullable[Any]]] - nextbit: NotRequired[Dict[str, Nullable[Any]]] - nineteen: NotRequired[Dict[str, Nullable[Any]]] - novita: NotRequired[Dict[str, Nullable[Any]]] - nvidia: NotRequired[Dict[str, Nullable[Any]]] - octoai: NotRequired[Dict[str, Nullable[Any]]] - open_inference: NotRequired[Dict[str, Nullable[Any]]] - openai: NotRequired[Dict[str, Nullable[Any]]] - parasail: NotRequired[Dict[str, Nullable[Any]]] - perceptron: NotRequired[Dict[str, Nullable[Any]]] - perplexity: NotRequired[Dict[str, Nullable[Any]]] - phala: NotRequired[Dict[str, Nullable[Any]]] - poolside: NotRequired[Dict[str, Nullable[Any]]] - quiver: NotRequired[Dict[str, Nullable[Any]]] - recraft: NotRequired[Dict[str, Nullable[Any]]] - recursal: NotRequired[Dict[str, Nullable[Any]]] - reflection: NotRequired[Dict[str, Nullable[Any]]] - reka: NotRequired[Dict[str, Nullable[Any]]] - relace: NotRequired[Dict[str, Nullable[Any]]] - replicate: NotRequired[Dict[str, Nullable[Any]]] - sail_research: NotRequired[Dict[str, Nullable[Any]]] - sakana: NotRequired[Dict[str, Nullable[Any]]] - sambanova: NotRequired[Dict[str, Nullable[Any]]] - sambanova_cloaked: NotRequired[Dict[str, Nullable[Any]]] - seed: NotRequired[Dict[str, Nullable[Any]]] - sf_compute: NotRequired[Dict[str, Nullable[Any]]] - siliconflow: NotRequired[Dict[str, Nullable[Any]]] - sourceful: NotRequired[Dict[str, Nullable[Any]]] - stealth: NotRequired[Dict[str, Nullable[Any]]] - stepfun: NotRequired[Dict[str, Nullable[Any]]] - streamlake: NotRequired[Dict[str, Nullable[Any]]] - switchpoint: NotRequired[Dict[str, Nullable[Any]]] - targon: NotRequired[Dict[str, Nullable[Any]]] - tenstorrent: NotRequired[Dict[str, Nullable[Any]]] - together: NotRequired[Dict[str, Nullable[Any]]] - together_lite: NotRequired[Dict[str, Nullable[Any]]] - ubicloud: NotRequired[Dict[str, Nullable[Any]]] - upstage: NotRequired[Dict[str, Nullable[Any]]] - venice: NotRequired[Dict[str, Nullable[Any]]] - wafer: NotRequired[Dict[str, Nullable[Any]]] - wandb: NotRequired[Dict[str, Nullable[Any]]] - xai: NotRequired[Dict[str, Nullable[Any]]] - xiaomi: NotRequired[Dict[str, Nullable[Any]]] - z_ai: NotRequired[Dict[str, Nullable[Any]]] + oneai: NotRequired[Dict[str, Any]] + ai21: NotRequired[Dict[str, Any]] + aion_labs: NotRequired[Dict[str, Any]] + akashml: NotRequired[Dict[str, Any]] + alibaba: NotRequired[Dict[str, Any]] + amazon_bedrock: NotRequired[Dict[str, Any]] + amazon_nova: NotRequired[Dict[str, Any]] + ambient: NotRequired[Dict[str, Any]] + anthropic: NotRequired[Dict[str, Any]] + anyscale: NotRequired[Dict[str, Any]] + arcee_ai: NotRequired[Dict[str, Any]] + atlas_cloud: NotRequired[Dict[str, Any]] + atoma: NotRequired[Dict[str, Any]] + avian: NotRequired[Dict[str, Any]] + azure: NotRequired[Dict[str, Any]] + baidu: NotRequired[Dict[str, Any]] + baseten: NotRequired[Dict[str, Any]] + black_forest_labs: NotRequired[Dict[str, Any]] + byteplus: NotRequired[Dict[str, Any]] + centml: NotRequired[Dict[str, Any]] + cerebras: NotRequired[Dict[str, Any]] + chutes: NotRequired[Dict[str, Any]] + cirrascale: NotRequired[Dict[str, Any]] + clarifai: NotRequired[Dict[str, Any]] + cloudflare: NotRequired[Dict[str, Any]] + cohere: NotRequired[Dict[str, Any]] + crofai: NotRequired[Dict[str, Any]] + crucible: NotRequired[Dict[str, Any]] + crusoe: NotRequired[Dict[str, Any]] + darkbloom: NotRequired[Dict[str, Any]] + decart: NotRequired[Dict[str, Any]] + deepgram: NotRequired[Dict[str, Any]] + deepinfra: NotRequired[Dict[str, Any]] + deepseek: NotRequired[Dict[str, Any]] + dekallm: NotRequired[Dict[str, Any]] + digitalocean: NotRequired[Dict[str, Any]] + enfer: NotRequired[Dict[str, Any]] + fake_provider: NotRequired[Dict[str, Any]] + featherless: NotRequired[Dict[str, Any]] + fireworks: NotRequired[Dict[str, Any]] + friendli: NotRequired[Dict[str, Any]] + gmicloud: NotRequired[Dict[str, Any]] + google_ai_studio: NotRequired[Dict[str, Any]] + google_vertex: NotRequired[Dict[str, Any]] + gopomelo: NotRequired[Dict[str, Any]] + groq: NotRequired[Dict[str, Any]] + heygen: NotRequired[Dict[str, Any]] + huggingface: NotRequired[Dict[str, Any]] + hyperbolic: NotRequired[Dict[str, Any]] + hyperbolic_quantized: NotRequired[Dict[str, Any]] + inception: NotRequired[Dict[str, Any]] + inceptron: NotRequired[Dict[str, Any]] + inferact_vllm: NotRequired[Dict[str, Any]] + inference_net: NotRequired[Dict[str, Any]] + infermatic: NotRequired[Dict[str, Any]] + inflection: NotRequired[Dict[str, Any]] + inocloud: NotRequired[Dict[str, Any]] + io_net: NotRequired[Dict[str, Any]] + ionstream: NotRequired[Dict[str, Any]] + klusterai: NotRequired[Dict[str, Any]] + krea: NotRequired[Dict[str, Any]] + lambda_: NotRequired[Dict[str, Any]] + lepton: NotRequired[Dict[str, Any]] + liquid: NotRequired[Dict[str, Any]] + lynn: NotRequired[Dict[str, Any]] + lynn_private: NotRequired[Dict[str, Any]] + mancer: NotRequired[Dict[str, Any]] + mancer_old: NotRequired[Dict[str, Any]] + mara: NotRequired[Dict[str, Any]] + meta: NotRequired[Dict[str, Any]] + minimax: NotRequired[Dict[str, Any]] + mistral: NotRequired[Dict[str, Any]] + modal: NotRequired[Dict[str, Any]] + modelrun: NotRequired[Dict[str, Any]] + modular: NotRequired[Dict[str, Any]] + moonshotai: NotRequired[Dict[str, Any]] + morph: NotRequired[Dict[str, Any]] + ncompass: NotRequired[Dict[str, Any]] + nebius: NotRequired[Dict[str, Any]] + nex_agi: NotRequired[Dict[str, Any]] + nextbit: NotRequired[Dict[str, Any]] + nineteen: NotRequired[Dict[str, Any]] + novita: NotRequired[Dict[str, Any]] + nvidia: NotRequired[Dict[str, Any]] + octoai: NotRequired[Dict[str, Any]] + open_inference: NotRequired[Dict[str, Any]] + openai: NotRequired[Dict[str, Any]] + parasail: NotRequired[Dict[str, Any]] + perceptron: NotRequired[Dict[str, Any]] + perplexity: NotRequired[Dict[str, Any]] + phala: NotRequired[Dict[str, Any]] + poolside: NotRequired[Dict[str, Any]] + quiver: NotRequired[Dict[str, Any]] + recraft: NotRequired[Dict[str, Any]] + recursal: NotRequired[Dict[str, Any]] + reflection: NotRequired[Dict[str, Any]] + reka: NotRequired[Dict[str, Any]] + relace: NotRequired[Dict[str, Any]] + replicate: NotRequired[Dict[str, Any]] + sail_research: NotRequired[Dict[str, Any]] + sakana: NotRequired[Dict[str, Any]] + sambanova: NotRequired[Dict[str, Any]] + sambanova_cloaked: NotRequired[Dict[str, Any]] + seed: NotRequired[Dict[str, Any]] + sf_compute: NotRequired[Dict[str, Any]] + siliconflow: NotRequired[Dict[str, Any]] + sourceful: NotRequired[Dict[str, Any]] + stealth: NotRequired[Dict[str, Any]] + stepfun: NotRequired[Dict[str, Any]] + streamlake: NotRequired[Dict[str, Any]] + switchpoint: NotRequired[Dict[str, Any]] + targon: NotRequired[Dict[str, Any]] + tencent: NotRequired[Dict[str, Any]] + tenstorrent: NotRequired[Dict[str, Any]] + together: NotRequired[Dict[str, Any]] + together_lite: NotRequired[Dict[str, Any]] + ubicloud: NotRequired[Dict[str, Any]] + upstage: NotRequired[Dict[str, Any]] + venice: NotRequired[Dict[str, Any]] + wafer: NotRequired[Dict[str, Any]] + wandb: NotRequired[Dict[str, Any]] + xai: NotRequired[Dict[str, Any]] + xiaomi: NotRequired[Dict[str, Any]] + z_ai: NotRequired[Dict[str, Any]] class ProviderOptions(BaseModel): r"""Provider-specific options keyed by provider slug. Only options for the matched provider are forwarded; the rest are ignored. Unrecognized keys are silently dropped.""" - oneai: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="01ai") - ] = None + oneai: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="01ai")] = None - ai21: Optional[Dict[str, Nullable[Any]]] = None + ai21: Optional[Dict[str, Any]] = None aion_labs: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="aion-labs") + Optional[Dict[str, Any]], pydantic.Field(alias="aion-labs") ] = None - akashml: Optional[Dict[str, Nullable[Any]]] = None + akashml: Optional[Dict[str, Any]] = None - alibaba: Optional[Dict[str, Nullable[Any]]] = None + alibaba: Optional[Dict[str, Any]] = None amazon_bedrock: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="amazon-bedrock") + Optional[Dict[str, Any]], pydantic.Field(alias="amazon-bedrock") ] = None amazon_nova: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="amazon-nova") + Optional[Dict[str, Any]], pydantic.Field(alias="amazon-nova") ] = None - ambient: Optional[Dict[str, Nullable[Any]]] = None + ambient: Optional[Dict[str, Any]] = None - anthropic: Optional[Dict[str, Nullable[Any]]] = None + anthropic: Optional[Dict[str, Any]] = None - anyscale: Optional[Dict[str, Nullable[Any]]] = None + anyscale: Optional[Dict[str, Any]] = None - arcee_ai: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="arcee-ai") - ] = None + arcee_ai: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="arcee-ai")] = ( + None + ) atlas_cloud: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="atlas-cloud") + Optional[Dict[str, Any]], pydantic.Field(alias="atlas-cloud") ] = None - atoma: Optional[Dict[str, Nullable[Any]]] = None + atoma: Optional[Dict[str, Any]] = None - avian: Optional[Dict[str, Nullable[Any]]] = None + avian: Optional[Dict[str, Any]] = None - azure: Optional[Dict[str, Nullable[Any]]] = None + azure: Optional[Dict[str, Any]] = None - baidu: Optional[Dict[str, Nullable[Any]]] = None + baidu: Optional[Dict[str, Any]] = None - baseten: Optional[Dict[str, Nullable[Any]]] = None + baseten: Optional[Dict[str, Any]] = None black_forest_labs: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="black-forest-labs") + Optional[Dict[str, Any]], pydantic.Field(alias="black-forest-labs") ] = None - byteplus: Optional[Dict[str, Nullable[Any]]] = None + byteplus: Optional[Dict[str, Any]] = None - centml: Optional[Dict[str, Nullable[Any]]] = None + centml: Optional[Dict[str, Any]] = None - cerebras: Optional[Dict[str, Nullable[Any]]] = None + cerebras: Optional[Dict[str, Any]] = None - chutes: Optional[Dict[str, Nullable[Any]]] = None + chutes: Optional[Dict[str, Any]] = None - cirrascale: Optional[Dict[str, Nullable[Any]]] = None + cirrascale: Optional[Dict[str, Any]] = None - clarifai: Optional[Dict[str, Nullable[Any]]] = None + clarifai: Optional[Dict[str, Any]] = None - cloudflare: Optional[Dict[str, Nullable[Any]]] = None + cloudflare: Optional[Dict[str, Any]] = None - cohere: Optional[Dict[str, Nullable[Any]]] = None + cohere: Optional[Dict[str, Any]] = None - crofai: Optional[Dict[str, Nullable[Any]]] = None + crofai: Optional[Dict[str, Any]] = None - crucible: Optional[Dict[str, Nullable[Any]]] = None + crucible: Optional[Dict[str, Any]] = None - crusoe: Optional[Dict[str, Nullable[Any]]] = None + crusoe: Optional[Dict[str, Any]] = None - darkbloom: Optional[Dict[str, Nullable[Any]]] = None + darkbloom: Optional[Dict[str, Any]] = None - decart: Optional[Dict[str, Nullable[Any]]] = None + decart: Optional[Dict[str, Any]] = None - deepgram: Optional[Dict[str, Nullable[Any]]] = None + deepgram: Optional[Dict[str, Any]] = None - deepinfra: Optional[Dict[str, Nullable[Any]]] = None + deepinfra: Optional[Dict[str, Any]] = None - deepseek: Optional[Dict[str, Nullable[Any]]] = None + deepseek: Optional[Dict[str, Any]] = None - dekallm: Optional[Dict[str, Nullable[Any]]] = None + dekallm: Optional[Dict[str, Any]] = None - digitalocean: Optional[Dict[str, Nullable[Any]]] = None + digitalocean: Optional[Dict[str, Any]] = None - enfer: Optional[Dict[str, Nullable[Any]]] = None + enfer: Optional[Dict[str, Any]] = None fake_provider: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="fake-provider") + Optional[Dict[str, Any]], pydantic.Field(alias="fake-provider") ] = None - featherless: Optional[Dict[str, Nullable[Any]]] = None + featherless: Optional[Dict[str, Any]] = None - fireworks: Optional[Dict[str, Nullable[Any]]] = None + fireworks: Optional[Dict[str, Any]] = None - friendli: Optional[Dict[str, Nullable[Any]]] = None + friendli: Optional[Dict[str, Any]] = None - gmicloud: Optional[Dict[str, Nullable[Any]]] = None + gmicloud: Optional[Dict[str, Any]] = None google_ai_studio: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="google-ai-studio") + Optional[Dict[str, Any]], pydantic.Field(alias="google-ai-studio") ] = None google_vertex: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="google-vertex") + Optional[Dict[str, Any]], pydantic.Field(alias="google-vertex") ] = None - gopomelo: Optional[Dict[str, Nullable[Any]]] = None + gopomelo: Optional[Dict[str, Any]] = None - groq: Optional[Dict[str, Nullable[Any]]] = None + groq: Optional[Dict[str, Any]] = None - heygen: Optional[Dict[str, Nullable[Any]]] = None + heygen: Optional[Dict[str, Any]] = None - huggingface: Optional[Dict[str, Nullable[Any]]] = None + huggingface: Optional[Dict[str, Any]] = None - hyperbolic: Optional[Dict[str, Nullable[Any]]] = None + hyperbolic: Optional[Dict[str, Any]] = None hyperbolic_quantized: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="hyperbolic-quantized") + Optional[Dict[str, Any]], pydantic.Field(alias="hyperbolic-quantized") ] = None - inception: Optional[Dict[str, Nullable[Any]]] = None + inception: Optional[Dict[str, Any]] = None - inceptron: Optional[Dict[str, Nullable[Any]]] = None + inceptron: Optional[Dict[str, Any]] = None inferact_vllm: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="inferact-vllm") + Optional[Dict[str, Any]], pydantic.Field(alias="inferact-vllm") ] = None inference_net: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="inference-net") + Optional[Dict[str, Any]], pydantic.Field(alias="inference-net") ] = None - infermatic: Optional[Dict[str, Nullable[Any]]] = None + infermatic: Optional[Dict[str, Any]] = None - inflection: Optional[Dict[str, Nullable[Any]]] = None + inflection: Optional[Dict[str, Any]] = None - inocloud: Optional[Dict[str, Nullable[Any]]] = None + inocloud: Optional[Dict[str, Any]] = None - io_net: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="io-net") - ] = None + io_net: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="io-net")] = None - ionstream: Optional[Dict[str, Nullable[Any]]] = None + ionstream: Optional[Dict[str, Any]] = None - klusterai: Optional[Dict[str, Nullable[Any]]] = None + klusterai: Optional[Dict[str, Any]] = None - krea: Optional[Dict[str, Nullable[Any]]] = None + krea: Optional[Dict[str, Any]] = None - lambda_: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="lambda") - ] = None + lambda_: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="lambda")] = None - lepton: Optional[Dict[str, Nullable[Any]]] = None + lepton: Optional[Dict[str, Any]] = None - liquid: Optional[Dict[str, Nullable[Any]]] = None + liquid: Optional[Dict[str, Any]] = None - lynn: Optional[Dict[str, Nullable[Any]]] = None + lynn: Optional[Dict[str, Any]] = None lynn_private: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="lynn-private") + Optional[Dict[str, Any]], pydantic.Field(alias="lynn-private") ] = None - mancer: Optional[Dict[str, Nullable[Any]]] = None + mancer: Optional[Dict[str, Any]] = None mancer_old: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="mancer-old") + Optional[Dict[str, Any]], pydantic.Field(alias="mancer-old") ] = None - mara: Optional[Dict[str, Nullable[Any]]] = None + mara: Optional[Dict[str, Any]] = None - meta: Optional[Dict[str, Nullable[Any]]] = None + meta: Optional[Dict[str, Any]] = None - minimax: Optional[Dict[str, Nullable[Any]]] = None + minimax: Optional[Dict[str, Any]] = None - mistral: Optional[Dict[str, Nullable[Any]]] = None + mistral: Optional[Dict[str, Any]] = None - modal: Optional[Dict[str, Nullable[Any]]] = None + modal: Optional[Dict[str, Any]] = None - modelrun: Optional[Dict[str, Nullable[Any]]] = None + modelrun: Optional[Dict[str, Any]] = None - modular: Optional[Dict[str, Nullable[Any]]] = None + modular: Optional[Dict[str, Any]] = None - moonshotai: Optional[Dict[str, Nullable[Any]]] = None + moonshotai: Optional[Dict[str, Any]] = None - morph: Optional[Dict[str, Nullable[Any]]] = None + morph: Optional[Dict[str, Any]] = None - ncompass: Optional[Dict[str, Nullable[Any]]] = None + ncompass: Optional[Dict[str, Any]] = None - nebius: Optional[Dict[str, Nullable[Any]]] = None + nebius: Optional[Dict[str, Any]] = None - nex_agi: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="nex-agi") - ] = None + nex_agi: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="nex-agi")] = None - nextbit: Optional[Dict[str, Nullable[Any]]] = None + nextbit: Optional[Dict[str, Any]] = None - nineteen: Optional[Dict[str, Nullable[Any]]] = None + nineteen: Optional[Dict[str, Any]] = None - novita: Optional[Dict[str, Nullable[Any]]] = None + novita: Optional[Dict[str, Any]] = None - nvidia: Optional[Dict[str, Nullable[Any]]] = None + nvidia: Optional[Dict[str, Any]] = None - octoai: Optional[Dict[str, Nullable[Any]]] = None + octoai: Optional[Dict[str, Any]] = None open_inference: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="open-inference") + Optional[Dict[str, Any]], pydantic.Field(alias="open-inference") ] = None - openai: Optional[Dict[str, Nullable[Any]]] = None + openai: Optional[Dict[str, Any]] = None - parasail: Optional[Dict[str, Nullable[Any]]] = None + parasail: Optional[Dict[str, Any]] = None - perceptron: Optional[Dict[str, Nullable[Any]]] = None + perceptron: Optional[Dict[str, Any]] = None - perplexity: Optional[Dict[str, Nullable[Any]]] = None + perplexity: Optional[Dict[str, Any]] = None - phala: Optional[Dict[str, Nullable[Any]]] = None + phala: Optional[Dict[str, Any]] = None - poolside: Optional[Dict[str, Nullable[Any]]] = None + poolside: Optional[Dict[str, Any]] = None - quiver: Optional[Dict[str, Nullable[Any]]] = None + quiver: Optional[Dict[str, Any]] = None - recraft: Optional[Dict[str, Nullable[Any]]] = None + recraft: Optional[Dict[str, Any]] = None - recursal: Optional[Dict[str, Nullable[Any]]] = None + recursal: Optional[Dict[str, Any]] = None - reflection: Optional[Dict[str, Nullable[Any]]] = None + reflection: Optional[Dict[str, Any]] = None - reka: Optional[Dict[str, Nullable[Any]]] = None + reka: Optional[Dict[str, Any]] = None - relace: Optional[Dict[str, Nullable[Any]]] = None + relace: Optional[Dict[str, Any]] = None - replicate: Optional[Dict[str, Nullable[Any]]] = None + replicate: Optional[Dict[str, Any]] = None sail_research: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="sail-research") + Optional[Dict[str, Any]], pydantic.Field(alias="sail-research") ] = None - sakana: Optional[Dict[str, Nullable[Any]]] = None + sakana: Optional[Dict[str, Any]] = None - sambanova: Optional[Dict[str, Nullable[Any]]] = None + sambanova: Optional[Dict[str, Any]] = None sambanova_cloaked: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="sambanova-cloaked") + Optional[Dict[str, Any]], pydantic.Field(alias="sambanova-cloaked") ] = None - seed: Optional[Dict[str, Nullable[Any]]] = None + seed: Optional[Dict[str, Any]] = None sf_compute: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="sf-compute") + Optional[Dict[str, Any]], pydantic.Field(alias="sf-compute") ] = None - siliconflow: Optional[Dict[str, Nullable[Any]]] = None + siliconflow: Optional[Dict[str, Any]] = None + + sourceful: Optional[Dict[str, Any]] = None - sourceful: Optional[Dict[str, Nullable[Any]]] = None + stealth: Optional[Dict[str, Any]] = None - stealth: Optional[Dict[str, Nullable[Any]]] = None + stepfun: Optional[Dict[str, Any]] = None - stepfun: Optional[Dict[str, Nullable[Any]]] = None + streamlake: Optional[Dict[str, Any]] = None - streamlake: Optional[Dict[str, Nullable[Any]]] = None + switchpoint: Optional[Dict[str, Any]] = None - switchpoint: Optional[Dict[str, Nullable[Any]]] = None + targon: Optional[Dict[str, Any]] = None - targon: Optional[Dict[str, Nullable[Any]]] = None + tencent: Optional[Dict[str, Any]] = None - tenstorrent: Optional[Dict[str, Nullable[Any]]] = None + tenstorrent: Optional[Dict[str, Any]] = None - together: Optional[Dict[str, Nullable[Any]]] = None + together: Optional[Dict[str, Any]] = None together_lite: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="together-lite") + Optional[Dict[str, Any]], pydantic.Field(alias="together-lite") ] = None - ubicloud: Optional[Dict[str, Nullable[Any]]] = None + ubicloud: Optional[Dict[str, Any]] = None - upstage: Optional[Dict[str, Nullable[Any]]] = None + upstage: Optional[Dict[str, Any]] = None - venice: Optional[Dict[str, Nullable[Any]]] = None + venice: Optional[Dict[str, Any]] = None - wafer: Optional[Dict[str, Nullable[Any]]] = None + wafer: Optional[Dict[str, Any]] = None - wandb: Optional[Dict[str, Nullable[Any]]] = None + wandb: Optional[Dict[str, Any]] = None - xai: Optional[Dict[str, Nullable[Any]]] = None + xai: Optional[Dict[str, Any]] = None - xiaomi: Optional[Dict[str, Nullable[Any]]] = None + xiaomi: Optional[Dict[str, Any]] = None - z_ai: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="z-ai") - ] = None + z_ai: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="z-ai")] = None @model_serializer(mode="wrap") def serialize_model(self, handler): @@ -549,6 +542,7 @@ def serialize_model(self, handler): "streamlake", "switchpoint", "targon", + "tencent", "tenstorrent", "together", "together-lite", diff --git a/src/openrouter/components/provideroverloadedresponseerrordata.py b/src/openrouter/components/provideroverloadedresponseerrordata.py index c85a381a..abe660d0 100644 --- a/src/openrouter/components/provideroverloadedresponseerrordata.py +++ b/src/openrouter/components/provideroverloadedresponseerrordata.py @@ -18,7 +18,7 @@ class ProviderOverloadedResponseErrorDataTypedDict(TypedDict): code: int message: str - metadata: NotRequired[Nullable[Dict[str, Nullable[Any]]]] + metadata: NotRequired[Nullable[Dict[str, Any]]] class ProviderOverloadedResponseErrorData(BaseModel): @@ -28,7 +28,7 @@ class ProviderOverloadedResponseErrorData(BaseModel): message: str - metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + metadata: OptionalNullable[Dict[str, Any]] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/providerpreferences.py b/src/openrouter/components/providerpreferences.py index 2d44eabb..54ef6ce9 100644 --- a/src/openrouter/components/providerpreferences.py +++ b/src/openrouter/components/providerpreferences.py @@ -19,7 +19,7 @@ UnrecognizedStr, ) from pydantic import model_serializer -from typing import Any, List, Literal, Optional, Union +from typing import List, Literal, Optional, Union from typing_extensions import NotRequired, TypeAliasType, TypedDict @@ -118,14 +118,13 @@ def serialize_model(self, handler): ProviderPreferencesSortTypedDict = TypeAliasType( - "ProviderPreferencesSortTypedDict", - Union[ProviderSortConfigTypedDict, ProviderSort, Any], + "ProviderPreferencesSortTypedDict", Union[ProviderSortConfigTypedDict, ProviderSort] ) r"""The sorting strategy to use for this request, if \"order\" is not specified. When set, no load balancing is performed.""" ProviderPreferencesSort = TypeAliasType( - "ProviderPreferencesSort", Union[ProviderSortConfig, ProviderSort, Any] + "ProviderPreferencesSort", Union[ProviderSortConfig, ProviderSort] ) r"""The sorting strategy to use for this request, if \"order\" is not specified. When set, no load balancing is performed.""" diff --git a/src/openrouter/components/providerresponse.py b/src/openrouter/components/providerresponse.py index fc625cf7..de277f8c 100644 --- a/src/openrouter/components/providerresponse.py +++ b/src/openrouter/components/providerresponse.py @@ -25,7 +25,6 @@ "Lynn 2", "Lynn", "Mancer", - "Meta", "Modal", "Nineteen", "OctoAI", @@ -88,6 +87,7 @@ "Liquid", "Mara", "Mancer 2", + "Meta", "Minimax", "ModelRun", "Mistral", @@ -120,6 +120,7 @@ "Stealth", "StreamLake", "Switchpoint", + "Tencent", "Tenstorrent", "Together", "Upstage", diff --git a/src/openrouter/components/publicendpoint.py b/src/openrouter/components/publicendpoint.py index f91d6ae5..0ebe1cdd 100644 --- a/src/openrouter/components/publicendpoint.py +++ b/src/openrouter/components/publicendpoint.py @@ -6,9 +6,10 @@ from .percentilestats import PercentileStats, PercentileStatsTypedDict from .pricingoverride import PricingOverride, PricingOverrideTypedDict from .providername import ProviderName -from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL, UnrecognizedStr +from .quantization import Quantization +from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL from pydantic import model_serializer -from typing import List, Literal, Optional, Union +from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -130,22 +131,6 @@ def serialize_model(self, handler): return m -PublicEndpointQuantization = Union[ - Literal[ - "int4", - "int8", - "fp4", - "fp6", - "fp8", - "fp16", - "bf16", - "fp32", - "unknown", - ], - UnrecognizedStr, -] - - class PublicEndpointTypedDict(TypedDict): r"""Information about a specific model endpoint""" @@ -160,7 +145,7 @@ class PublicEndpointTypedDict(TypedDict): name: str pricing: PricingTypedDict provider_name: ProviderName - quantization: Nullable[PublicEndpointQuantization] + quantization: Nullable[Quantization] supported_parameters: List[Parameter] supports_implicit_caching: bool tag: str @@ -196,7 +181,7 @@ class PublicEndpoint(BaseModel): provider_name: ProviderName - quantization: Nullable[PublicEndpointQuantization] + quantization: Nullable[Quantization] supported_parameters: List[Parameter] diff --git a/src/openrouter/components/reasoningconfig.py b/src/openrouter/components/reasoningconfig.py deleted file mode 100644 index fc8b0fb1..00000000 --- a/src/openrouter/components/reasoningconfig.py +++ /dev/null @@ -1,76 +0,0 @@ -"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" - -from __future__ import annotations -from .reasoningcontext import ReasoningContext -from .reasoningeffort import ReasoningEffort -from .reasoningmode import ReasoningMode -from .reasoningsummaryverbosity import ReasoningSummaryVerbosity -from openrouter.types import ( - BaseModel, - Nullable, - OptionalNullable, - UNSET, - UNSET_SENTINEL, -) -from pydantic import model_serializer -from typing_extensions import NotRequired, TypedDict - - -class ReasoningConfigTypedDict(TypedDict): - r"""Configuration for reasoning mode in the response""" - - context: NotRequired[Nullable[ReasoningContext]] - r"""Controls which reasoning is available to the model. `auto` uses the model default (same as omitting); `all_turns` includes reasoning from earlier turns passed in input; `current_turn` limits to the current turn only. Only supported by OpenAI GPT-5.6 and newer.""" - effort: NotRequired[Nullable[ReasoningEffort]] - mode: NotRequired[Nullable[ReasoningMode]] - r"""Selects the reasoning mode. `standard` is the default; `pro` engages deeper reasoning on models that support it, billed at standard token rates. Only supported by OpenAI GPT-5.6 and newer.""" - summary: NotRequired[Nullable[ReasoningSummaryVerbosity]] - enabled: NotRequired[Nullable[bool]] - max_tokens: NotRequired[Nullable[int]] - - -class ReasoningConfig(BaseModel): - r"""Configuration for reasoning mode in the response""" - - context: OptionalNullable[ReasoningContext] = UNSET - r"""Controls which reasoning is available to the model. `auto` uses the model default (same as omitting); `all_turns` includes reasoning from earlier turns passed in input; `current_turn` limits to the current turn only. Only supported by OpenAI GPT-5.6 and newer.""" - - effort: OptionalNullable[ReasoningEffort] = UNSET - - mode: OptionalNullable[ReasoningMode] = UNSET - r"""Selects the reasoning mode. `standard` is the default; `pro` engages deeper reasoning on models that support it, billed at standard token rates. Only supported by OpenAI GPT-5.6 and newer.""" - - summary: OptionalNullable[ReasoningSummaryVerbosity] = UNSET - - enabled: OptionalNullable[bool] = UNSET - - max_tokens: OptionalNullable[int] = UNSET - - @model_serializer(mode="wrap") - def serialize_model(self, handler): - optional_fields = set( - ["context", "effort", "mode", "summary", "enabled", "max_tokens"] - ) - nullable_fields = set( - ["context", "effort", "mode", "summary", "enabled", "max_tokens"] - ) - 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)) - is_nullable_and_explicitly_set = ( - k in nullable_fields - and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member - ) - - if val != UNSET_SENTINEL: - if ( - val is not None - or k not in optional_fields - or is_nullable_and_explicitly_set - ): - m[k] = val - - return m diff --git a/src/openrouter/components/requesttimeoutresponseerrordata.py b/src/openrouter/components/requesttimeoutresponseerrordata.py index 0ba1a63f..72b06848 100644 --- a/src/openrouter/components/requesttimeoutresponseerrordata.py +++ b/src/openrouter/components/requesttimeoutresponseerrordata.py @@ -18,7 +18,7 @@ class RequestTimeoutResponseErrorDataTypedDict(TypedDict): code: int message: str - metadata: NotRequired[Nullable[Dict[str, Nullable[Any]]]] + metadata: NotRequired[Nullable[Dict[str, Any]]] class RequestTimeoutResponseErrorData(BaseModel): @@ -28,7 +28,7 @@ class RequestTimeoutResponseErrorData(BaseModel): message: str - metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + metadata: OptionalNullable[Dict[str, Any]] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/responsesrequest.py b/src/openrouter/components/responsesrequest.py index d3178dd1..f7102dca 100644 --- a/src/openrouter/components/responsesrequest.py +++ b/src/openrouter/components/responsesrequest.py @@ -71,7 +71,10 @@ ) from .promptcacheoptions import PromptCacheOptions, PromptCacheOptionsTypedDict from .providerpreferences import ProviderPreferences, ProviderPreferencesTypedDict -from .reasoningconfig import ReasoningConfig, ReasoningConfigTypedDict +from .reasoningcontext import ReasoningContext +from .reasoningeffort import ReasoningEffort +from .reasoningmode import ReasoningMode +from .reasoningsummaryverbosity import ReasoningSummaryVerbosity from .responsehealingplugin import ResponseHealingPlugin, ResponseHealingPluginTypedDict from .responseincludesenum import ResponseIncludesEnum from .searchmodelsservertool_openrouter import ( @@ -150,6 +153,62 @@ ] +class ReasoningConfigTypedDict(TypedDict): + context: NotRequired[Nullable[ReasoningContext]] + r"""Controls which reasoning is available to the model. `auto` uses the model default (same as omitting); `all_turns` includes reasoning from earlier turns passed in input; `current_turn` limits to the current turn only. Only supported by OpenAI GPT-5.6 and newer.""" + effort: NotRequired[Nullable[ReasoningEffort]] + mode: NotRequired[Nullable[ReasoningMode]] + r"""Selects the reasoning mode. `standard` is the default; `pro` engages deeper reasoning on models that support it, billed at standard token rates. Only supported by OpenAI GPT-5.6 and newer.""" + summary: NotRequired[Nullable[ReasoningSummaryVerbosity]] + enabled: NotRequired[Nullable[bool]] + max_tokens: NotRequired[Nullable[int]] + + +class ReasoningConfig(BaseModel): + context: OptionalNullable[ReasoningContext] = UNSET + r"""Controls which reasoning is available to the model. `auto` uses the model default (same as omitting); `all_turns` includes reasoning from earlier turns passed in input; `current_turn` limits to the current turn only. Only supported by OpenAI GPT-5.6 and newer.""" + + effort: OptionalNullable[ReasoningEffort] = UNSET + + mode: OptionalNullable[ReasoningMode] = UNSET + r"""Selects the reasoning mode. `standard` is the default; `pro` engages deeper reasoning on models that support it, billed at standard token rates. Only supported by OpenAI GPT-5.6 and newer.""" + + summary: OptionalNullable[ReasoningSummaryVerbosity] = UNSET + + enabled: OptionalNullable[bool] = UNSET + + max_tokens: OptionalNullable[int] = UNSET + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set( + ["context", "effort", "mode", "summary", "enabled", "max_tokens"] + ) + nullable_fields = set( + ["context", "effort", "mode", "summary", "enabled", "max_tokens"] + ) + 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) + + if val != UNSET_SENTINEL: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): + m[k] = val + + return m + + ResponsesRequestServiceTier = Union[ Literal[ "auto", @@ -169,7 +228,7 @@ class ResponsesRequestToolFunctionTypedDict(TypedDict): r"""Function tool definition""" name: str - parameters: Nullable[Dict[str, Nullable[Any]]] + parameters: Nullable[Dict[str, Any]] type: ResponsesRequestType description: NotRequired[Nullable[str]] strict: NotRequired[Nullable[bool]] @@ -180,7 +239,7 @@ class ResponsesRequestToolFunction(BaseModel): name: str - parameters: Nullable[Dict[str, Nullable[Any]]] + parameters: Nullable[Dict[str, Any]] type: ResponsesRequestType @@ -316,7 +375,7 @@ class ResponsesRequestTypedDict(TypedDict): plugins: NotRequired[List[ResponsesRequestPluginTypedDict]] r"""Plugins you want to enable for this request, including their settings.""" presence_penalty: NotRequired[Nullable[float]] - previous_response_id: NotRequired[Nullable[Any]] + previous_response_id: NotRequired[Any] r"""Not supported. The Responses API is stateless: no responses are stored, so a previous response cannot be referenced. Requests with a non-null value are rejected with a 400 error. Send the full conversation history in `input` instead.""" prompt: NotRequired[Nullable[StoredPromptTemplateTypedDict]] prompt_cache_key: NotRequired[Nullable[str]] @@ -393,7 +452,7 @@ class ResponsesRequest(BaseModel): presence_penalty: OptionalNullable[float] = UNSET - previous_response_id: OptionalNullable[Any] = UNSET + previous_response_id: Optional[Any] = None r"""Not supported. The Responses API is stateless: no responses are stored, so a previous response cannot be referenced. Requests with a non-null value are rejected with a 400 error. Send the full conversation history in `input` instead.""" prompt: OptionalNullable[StoredPromptTemplate] = UNSET @@ -505,7 +564,6 @@ def serialize_model(self, handler): "metadata", "parallel_tool_calls", "presence_penalty", - "previous_response_id", "prompt", "prompt_cache_key", "prompt_cache_options", diff --git a/src/openrouter/components/routerparams.py b/src/openrouter/components/routerparams.py index 264be670..9199acfa 100644 --- a/src/openrouter/components/routerparams.py +++ b/src/openrouter/components/routerparams.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL +from openrouter.types import BaseModel, UNSET_SENTINEL import pydantic from pydantic import ConfigDict, model_serializer from typing import Any, Dict, Optional @@ -18,7 +18,7 @@ class RouterParams(BaseModel): model_config = ConfigDict( populate_by_name=True, arbitrary_types_allowed=True, extra="allow" ) - __pydantic_extra__: Dict[str, Nullable[Any]] = pydantic.Field(init=False) + __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False) quality_floor: Optional[float] = None diff --git a/src/openrouter/components/serviceunavailableresponseerrordata.py b/src/openrouter/components/serviceunavailableresponseerrordata.py index b6859e9f..cd18828d 100644 --- a/src/openrouter/components/serviceunavailableresponseerrordata.py +++ b/src/openrouter/components/serviceunavailableresponseerrordata.py @@ -18,7 +18,7 @@ class ServiceUnavailableResponseErrorDataTypedDict(TypedDict): code: int message: str - metadata: NotRequired[Nullable[Dict[str, Nullable[Any]]]] + metadata: NotRequired[Nullable[Dict[str, Any]]] class ServiceUnavailableResponseErrorData(BaseModel): @@ -28,7 +28,7 @@ class ServiceUnavailableResponseErrorData(BaseModel): message: str - metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + metadata: OptionalNullable[Dict[str, Any]] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/shellcallitem.py b/src/openrouter/components/shellcallitem.py index 3a5faf69..3eeb48a1 100644 --- a/src/openrouter/components/shellcallitem.py +++ b/src/openrouter/components/shellcallitem.py @@ -1,16 +1,16 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations +from .toolcallstatus import ToolCallStatus from openrouter.types import ( BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL, - UnrecognizedStr, ) from pydantic import model_serializer -from typing import Any, List, Literal, Union +from typing import Any, List, Literal, Optional from typing_extensions import NotRequired, TypedDict @@ -53,16 +53,6 @@ def serialize_model(self, handler): return m -ShellCallItemStatus = Union[ - Literal[ - "in_progress", - "completed", - "incomplete", - ], - UnrecognizedStr, -] - - ShellCallItemType = Literal["shell_call",] @@ -72,9 +62,9 @@ class ShellCallItemTypedDict(TypedDict): action: ShellCallItemActionTypedDict call_id: str type: ShellCallItemType - environment: NotRequired[Nullable[Any]] + environment: NotRequired[Any] id: NotRequired[Nullable[str]] - status: NotRequired[Nullable[ShellCallItemStatus]] + status: NotRequired[Nullable[ToolCallStatus]] class ShellCallItem(BaseModel): @@ -86,16 +76,16 @@ class ShellCallItem(BaseModel): type: ShellCallItemType - environment: OptionalNullable[Any] = UNSET + environment: Optional[Any] = None id: OptionalNullable[str] = UNSET - status: OptionalNullable[ShellCallItemStatus] = UNSET + status: OptionalNullable[ToolCallStatus] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set(["environment", "id", "status"]) - nullable_fields = set(["environment", "id", "status"]) + nullable_fields = set(["id", "status"]) serialized = handler(self) m = {} diff --git a/src/openrouter/components/shellcalloutputitem.py b/src/openrouter/components/shellcalloutputitem.py index 872701b5..3996cdd3 100644 --- a/src/openrouter/components/shellcalloutputitem.py +++ b/src/openrouter/components/shellcalloutputitem.py @@ -1,17 +1,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations +from .toolcallstatus import ToolCallStatus from openrouter.types import ( BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL, - UnrecognizedStr, ) import pydantic from pydantic import ConfigDict, model_serializer -from typing import Any, Dict, List, Literal, Union +from typing import Any, Dict, List, Literal from typing_extensions import NotRequired, TypedDict @@ -25,7 +25,7 @@ class ShellCallOutputItemOutput(BaseModel): model_config = ConfigDict( populate_by_name=True, arbitrary_types_allowed=True, extra="allow" ) - __pydantic_extra__: Dict[str, Nullable[Any]] = pydantic.Field(init=False) + __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False) type: str @@ -70,16 +70,6 @@ def serialize_model(self, handler): return m -ShellCallOutputItemStatus = Union[ - Literal[ - "in_progress", - "completed", - "incomplete", - ], - UnrecognizedStr, -] - - ShellCallOutputItemType = Literal["shell_call_output",] @@ -91,7 +81,7 @@ class ShellCallOutputItemTypedDict(TypedDict): type: ShellCallOutputItemType id: NotRequired[Nullable[str]] max_output_length: NotRequired[Nullable[int]] - status: NotRequired[Nullable[ShellCallOutputItemStatus]] + status: NotRequired[Nullable[ToolCallStatus]] class ShellCallOutputItem(BaseModel): @@ -107,7 +97,7 @@ class ShellCallOutputItem(BaseModel): max_output_length: OptionalNullable[int] = UNSET - status: OptionalNullable[ShellCallOutputItemStatus] = UNSET + status: OptionalNullable[ToolCallStatus] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/subagentnestedtool.py b/src/openrouter/components/subagentnestedtool.py index 4a62a2c0..e803021e 100644 --- a/src/openrouter/components/subagentnestedtool.py +++ b/src/openrouter/components/subagentnestedtool.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL +from openrouter.types import BaseModel, UNSET_SENTINEL import pydantic from pydantic import ConfigDict, model_serializer from typing import Any, Dict, Optional @@ -12,7 +12,7 @@ class SubagentNestedToolTypedDict(TypedDict): r"""A tool made available to the subagent. Only OpenRouter server tools (e.g. openrouter:web_search) are supported; function tools are rejected because the worker has no way to execute them. The subagent tool may not list itself.""" type: str - parameters: NotRequired[Dict[str, Nullable[Any]]] + parameters: NotRequired[Dict[str, Any]] class SubagentNestedTool(BaseModel): @@ -21,11 +21,11 @@ class SubagentNestedTool(BaseModel): model_config = ConfigDict( populate_by_name=True, arbitrary_types_allowed=True, extra="allow" ) - __pydantic_extra__: Dict[str, Nullable[Any]] = pydantic.Field(init=False) + __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False) type: str - parameters: Optional[Dict[str, Nullable[Any]]] = None + parameters: Optional[Dict[str, Any]] = None @property def additional_properties(self): diff --git a/src/openrouter/components/toolchoiceallowed.py b/src/openrouter/components/toolchoiceallowed.py index 999b399b..4ad8b7e6 100644 --- a/src/openrouter/components/toolchoiceallowed.py +++ b/src/openrouter/components/toolchoiceallowed.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from openrouter.types import BaseModel, Nullable +from openrouter.types import BaseModel from typing import Any, Dict, List, Literal, Union from typing_extensions import TypeAliasType, TypedDict @@ -25,7 +25,7 @@ class ToolChoiceAllowedTypedDict(TypedDict): r"""Constrains the model to a pre-defined set of allowed tools""" mode: ModeTypedDict - tools: List[Dict[str, Nullable[Any]]] + tools: List[Dict[str, Any]] type: ToolChoiceAllowedType @@ -34,6 +34,6 @@ class ToolChoiceAllowed(BaseModel): mode: Mode - tools: List[Dict[str, Nullable[Any]]] + tools: List[Dict[str, Any]] type: ToolChoiceAllowedType diff --git a/src/openrouter/components/toomanyrequestsresponseerrordata.py b/src/openrouter/components/toomanyrequestsresponseerrordata.py index 2446e966..122defa7 100644 --- a/src/openrouter/components/toomanyrequestsresponseerrordata.py +++ b/src/openrouter/components/toomanyrequestsresponseerrordata.py @@ -18,7 +18,7 @@ class TooManyRequestsResponseErrorDataTypedDict(TypedDict): code: int message: str - metadata: NotRequired[Nullable[Dict[str, Nullable[Any]]]] + metadata: NotRequired[Nullable[Dict[str, Any]]] class TooManyRequestsResponseErrorData(BaseModel): @@ -28,7 +28,7 @@ class TooManyRequestsResponseErrorData(BaseModel): message: str - metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + metadata: OptionalNullable[Dict[str, Any]] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/traceconfig.py b/src/openrouter/components/traceconfig.py index 5ef25d66..d0a4c49a 100644 --- a/src/openrouter/components/traceconfig.py +++ b/src/openrouter/components/traceconfig.py @@ -1,7 +1,7 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL +from openrouter.types import BaseModel, UNSET_SENTINEL import pydantic from pydantic import ConfigDict, model_serializer from typing import Any, Dict, Optional @@ -24,7 +24,7 @@ class TraceConfig(BaseModel): model_config = ConfigDict( populate_by_name=True, arbitrary_types_allowed=True, extra="allow" ) - __pydantic_extra__: Dict[str, Nullable[Any]] = pydantic.Field(init=False) + __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False) generation_name: Optional[str] = None diff --git a/src/openrouter/components/unauthorizedresponseerrordata.py b/src/openrouter/components/unauthorizedresponseerrordata.py index b1fee6c3..75fec038 100644 --- a/src/openrouter/components/unauthorizedresponseerrordata.py +++ b/src/openrouter/components/unauthorizedresponseerrordata.py @@ -18,7 +18,7 @@ class UnauthorizedResponseErrorDataTypedDict(TypedDict): code: int message: str - metadata: NotRequired[Nullable[Dict[str, Nullable[Any]]]] + metadata: NotRequired[Nullable[Dict[str, Any]]] class UnauthorizedResponseErrorData(BaseModel): @@ -28,7 +28,7 @@ class UnauthorizedResponseErrorData(BaseModel): message: str - metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + metadata: OptionalNullable[Dict[str, Any]] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/unprocessableentityresponseerrordata.py b/src/openrouter/components/unprocessableentityresponseerrordata.py index 72a7e1d5..696d3c57 100644 --- a/src/openrouter/components/unprocessableentityresponseerrordata.py +++ b/src/openrouter/components/unprocessableentityresponseerrordata.py @@ -18,7 +18,7 @@ class UnprocessableEntityResponseErrorDataTypedDict(TypedDict): code: int message: str - metadata: NotRequired[Nullable[Dict[str, Nullable[Any]]]] + metadata: NotRequired[Nullable[Dict[str, Any]]] class UnprocessableEntityResponseErrorData(BaseModel): @@ -28,7 +28,7 @@ class UnprocessableEntityResponseErrorData(BaseModel): message: str - metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + metadata: OptionalNullable[Dict[str, Any]] = UNSET @model_serializer(mode="wrap") def serialize_model(self, handler): diff --git a/src/openrouter/components/updateobservabilitydestinationrequest.py b/src/openrouter/components/updateobservabilitydestinationrequest.py index e0d3f99c..7325eabc 100644 --- a/src/openrouter/components/updateobservabilitydestinationrequest.py +++ b/src/openrouter/components/updateobservabilitydestinationrequest.py @@ -20,7 +20,7 @@ class UpdateObservabilityDestinationRequestTypedDict(TypedDict): api_key_hashes: NotRequired[Nullable[List[str]]] r"""Optional allowlist of OpenRouter API key hashes. `null` clears the filter (all keys). Omitting leaves the current value. Must contain at least one hash if provided.""" - config: NotRequired[Dict[str, Nullable[Any]]] + config: NotRequired[Dict[str, Any]] r"""Provider-specific configuration fields to update. Masked values are ignored; unset fields keep their current value.""" enabled: NotRequired[bool] r"""Whether the destination is enabled.""" @@ -37,7 +37,7 @@ class UpdateObservabilityDestinationRequest(BaseModel): api_key_hashes: OptionalNullable[List[str]] = UNSET r"""Optional allowlist of OpenRouter API key hashes. `null` clears the filter (all keys). Omitting leaves the current value. Must contain at least one hash if provided.""" - config: Optional[Dict[str, Nullable[Any]]] = None + config: Optional[Dict[str, Any]] = None r"""Provider-specific configuration fields to update. Masked values are ignored; unset fields keep their current value.""" enabled: Optional[bool] = None diff --git a/src/openrouter/components/usage.py b/src/openrouter/components/usage.py deleted file mode 100644 index 09f72488..00000000 --- a/src/openrouter/components/usage.py +++ /dev/null @@ -1,166 +0,0 @@ -"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" - -from __future__ import annotations -from .servertoolusedetails import ServerToolUseDetails, ServerToolUseDetailsTypedDict -from openrouter.types import ( - BaseModel, - Nullable, - OptionalNullable, - UNSET, - UNSET_SENTINEL, -) -from pydantic import model_serializer -from typing import Optional -from typing_extensions import NotRequired, TypedDict - - -class InputTokensDetailsTypedDict(TypedDict): - cached_tokens: int - cache_write_tokens: NotRequired[Nullable[int]] - - -class InputTokensDetails(BaseModel): - cached_tokens: int - - cache_write_tokens: OptionalNullable[int] = UNSET - - @model_serializer(mode="wrap") - def serialize_model(self, handler): - optional_fields = set(["cache_write_tokens"]) - nullable_fields = set(["cache_write_tokens"]) - 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)) - is_nullable_and_explicitly_set = ( - k in nullable_fields - and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member - ) - - if val != UNSET_SENTINEL: - if ( - val is not None - or k not in optional_fields - or is_nullable_and_explicitly_set - ): - m[k] = val - - return m - - -class OutputTokensDetailsTypedDict(TypedDict): - reasoning_tokens: int - - -class OutputTokensDetails(BaseModel): - reasoning_tokens: int - - -class UsageCostDetailsTypedDict(TypedDict): - upstream_inference_input_cost: float - upstream_inference_output_cost: float - upstream_inference_cost: NotRequired[Nullable[float]] - - -class UsageCostDetails(BaseModel): - upstream_inference_input_cost: float - - upstream_inference_output_cost: float - - upstream_inference_cost: OptionalNullable[float] = UNSET - - @model_serializer(mode="wrap") - def serialize_model(self, handler): - optional_fields = set(["upstream_inference_cost"]) - nullable_fields = set(["upstream_inference_cost"]) - 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)) - is_nullable_and_explicitly_set = ( - k in nullable_fields - and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member - ) - - if val != UNSET_SENTINEL: - if ( - val is not None - or k not in optional_fields - or is_nullable_and_explicitly_set - ): - m[k] = val - - return m - - -class UsageTypedDict(TypedDict): - r"""Token usage information for the response""" - - input_tokens: int - input_tokens_details: InputTokensDetailsTypedDict - output_tokens: int - output_tokens_details: OutputTokensDetailsTypedDict - total_tokens: int - cost: NotRequired[Nullable[float]] - r"""Cost of the completion""" - cost_details: NotRequired[UsageCostDetailsTypedDict] - is_byok: NotRequired[bool] - r"""Whether a request was made using a Bring Your Own Key configuration""" - server_tool_use_details: NotRequired[Nullable[ServerToolUseDetailsTypedDict]] - r"""Usage for server-side tool execution (e.g., web search)""" - - -class Usage(BaseModel): - r"""Token usage information for the response""" - - input_tokens: int - - input_tokens_details: InputTokensDetails - - output_tokens: int - - output_tokens_details: OutputTokensDetails - - total_tokens: int - - cost: OptionalNullable[float] = UNSET - r"""Cost of the completion""" - - cost_details: Optional[UsageCostDetails] = None - - is_byok: Optional[bool] = None - r"""Whether a request was made using a Bring Your Own Key configuration""" - - server_tool_use_details: OptionalNullable[ServerToolUseDetails] = UNSET - r"""Usage for server-side tool execution (e.g., web search)""" - - @model_serializer(mode="wrap") - def serialize_model(self, handler): - optional_fields = set( - ["cost", "cost_details", "is_byok", "server_tool_use_details"] - ) - nullable_fields = set(["cost", "server_tool_use_details"]) - 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)) - is_nullable_and_explicitly_set = ( - k in nullable_fields - and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member - ) - - if val != UNSET_SENTINEL: - if ( - val is not None - or k not in optional_fields - or is_nullable_and_explicitly_set - ): - m[k] = val - - return m diff --git a/src/openrouter/components/videogenerationrequest.py b/src/openrouter/components/videogenerationrequest.py index 510ff2a6..26d076fe 100644 --- a/src/openrouter/components/videogenerationrequest.py +++ b/src/openrouter/components/videogenerationrequest.py @@ -3,7 +3,7 @@ from __future__ import annotations from .frameimage import FrameImage, FrameImageTypedDict from .inputreference import InputReference, InputReferenceTypedDict -from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL, UnrecognizedStr +from openrouter.types import BaseModel, UNSET_SENTINEL, UnrecognizedStr import pydantic from pydantic import model_serializer from typing import Any, Dict, List, Literal, Optional, Union @@ -30,427 +30,420 @@ class VideoGenerationRequestOptionsTypedDict(TypedDict): r"""Provider-specific options keyed by provider slug. Only options for the matched provider are forwarded; the rest are ignored. Unrecognized keys are silently dropped.""" - oneai: NotRequired[Dict[str, Nullable[Any]]] - ai21: NotRequired[Dict[str, Nullable[Any]]] - aion_labs: NotRequired[Dict[str, Nullable[Any]]] - akashml: NotRequired[Dict[str, Nullable[Any]]] - alibaba: NotRequired[Dict[str, Nullable[Any]]] - amazon_bedrock: NotRequired[Dict[str, Nullable[Any]]] - amazon_nova: NotRequired[Dict[str, Nullable[Any]]] - ambient: NotRequired[Dict[str, Nullable[Any]]] - anthropic: NotRequired[Dict[str, Nullable[Any]]] - anyscale: NotRequired[Dict[str, Nullable[Any]]] - arcee_ai: NotRequired[Dict[str, Nullable[Any]]] - atlas_cloud: NotRequired[Dict[str, Nullable[Any]]] - atoma: NotRequired[Dict[str, Nullable[Any]]] - avian: NotRequired[Dict[str, Nullable[Any]]] - azure: NotRequired[Dict[str, Nullable[Any]]] - baidu: NotRequired[Dict[str, Nullable[Any]]] - baseten: NotRequired[Dict[str, Nullable[Any]]] - black_forest_labs: NotRequired[Dict[str, Nullable[Any]]] - byteplus: NotRequired[Dict[str, Nullable[Any]]] - centml: NotRequired[Dict[str, Nullable[Any]]] - cerebras: NotRequired[Dict[str, Nullable[Any]]] - chutes: NotRequired[Dict[str, Nullable[Any]]] - cirrascale: NotRequired[Dict[str, Nullable[Any]]] - clarifai: NotRequired[Dict[str, Nullable[Any]]] - cloudflare: NotRequired[Dict[str, Nullable[Any]]] - cohere: NotRequired[Dict[str, Nullable[Any]]] - crofai: NotRequired[Dict[str, Nullable[Any]]] - crucible: NotRequired[Dict[str, Nullable[Any]]] - crusoe: NotRequired[Dict[str, Nullable[Any]]] - darkbloom: NotRequired[Dict[str, Nullable[Any]]] - decart: NotRequired[Dict[str, Nullable[Any]]] - deepgram: NotRequired[Dict[str, Nullable[Any]]] - deepinfra: NotRequired[Dict[str, Nullable[Any]]] - deepseek: NotRequired[Dict[str, Nullable[Any]]] - dekallm: NotRequired[Dict[str, Nullable[Any]]] - digitalocean: NotRequired[Dict[str, Nullable[Any]]] - enfer: NotRequired[Dict[str, Nullable[Any]]] - fake_provider: NotRequired[Dict[str, Nullable[Any]]] - featherless: NotRequired[Dict[str, Nullable[Any]]] - fireworks: NotRequired[Dict[str, Nullable[Any]]] - friendli: NotRequired[Dict[str, Nullable[Any]]] - gmicloud: NotRequired[Dict[str, Nullable[Any]]] - google_ai_studio: NotRequired[Dict[str, Nullable[Any]]] - google_vertex: NotRequired[Dict[str, Nullable[Any]]] - gopomelo: NotRequired[Dict[str, Nullable[Any]]] - groq: NotRequired[Dict[str, Nullable[Any]]] - heygen: NotRequired[Dict[str, Nullable[Any]]] - huggingface: NotRequired[Dict[str, Nullable[Any]]] - hyperbolic: NotRequired[Dict[str, Nullable[Any]]] - hyperbolic_quantized: NotRequired[Dict[str, Nullable[Any]]] - inception: NotRequired[Dict[str, Nullable[Any]]] - inceptron: NotRequired[Dict[str, Nullable[Any]]] - inferact_vllm: NotRequired[Dict[str, Nullable[Any]]] - inference_net: NotRequired[Dict[str, Nullable[Any]]] - infermatic: NotRequired[Dict[str, Nullable[Any]]] - inflection: NotRequired[Dict[str, Nullable[Any]]] - inocloud: NotRequired[Dict[str, Nullable[Any]]] - io_net: NotRequired[Dict[str, Nullable[Any]]] - ionstream: NotRequired[Dict[str, Nullable[Any]]] - klusterai: NotRequired[Dict[str, Nullable[Any]]] - krea: NotRequired[Dict[str, Nullable[Any]]] - lambda_: NotRequired[Dict[str, Nullable[Any]]] - lepton: NotRequired[Dict[str, Nullable[Any]]] - liquid: NotRequired[Dict[str, Nullable[Any]]] - lynn: NotRequired[Dict[str, Nullable[Any]]] - lynn_private: NotRequired[Dict[str, Nullable[Any]]] - mancer: NotRequired[Dict[str, Nullable[Any]]] - mancer_old: NotRequired[Dict[str, Nullable[Any]]] - mara: NotRequired[Dict[str, Nullable[Any]]] - meta: NotRequired[Dict[str, Nullable[Any]]] - minimax: NotRequired[Dict[str, Nullable[Any]]] - mistral: NotRequired[Dict[str, Nullable[Any]]] - modal: NotRequired[Dict[str, Nullable[Any]]] - modelrun: NotRequired[Dict[str, Nullable[Any]]] - modular: NotRequired[Dict[str, Nullable[Any]]] - moonshotai: NotRequired[Dict[str, Nullable[Any]]] - morph: NotRequired[Dict[str, Nullable[Any]]] - ncompass: NotRequired[Dict[str, Nullable[Any]]] - nebius: NotRequired[Dict[str, Nullable[Any]]] - nex_agi: NotRequired[Dict[str, Nullable[Any]]] - nextbit: NotRequired[Dict[str, Nullable[Any]]] - nineteen: NotRequired[Dict[str, Nullable[Any]]] - novita: NotRequired[Dict[str, Nullable[Any]]] - nvidia: NotRequired[Dict[str, Nullable[Any]]] - octoai: NotRequired[Dict[str, Nullable[Any]]] - open_inference: NotRequired[Dict[str, Nullable[Any]]] - openai: NotRequired[Dict[str, Nullable[Any]]] - parasail: NotRequired[Dict[str, Nullable[Any]]] - perceptron: NotRequired[Dict[str, Nullable[Any]]] - perplexity: NotRequired[Dict[str, Nullable[Any]]] - phala: NotRequired[Dict[str, Nullable[Any]]] - poolside: NotRequired[Dict[str, Nullable[Any]]] - quiver: NotRequired[Dict[str, Nullable[Any]]] - recraft: NotRequired[Dict[str, Nullable[Any]]] - recursal: NotRequired[Dict[str, Nullable[Any]]] - reflection: NotRequired[Dict[str, Nullable[Any]]] - reka: NotRequired[Dict[str, Nullable[Any]]] - relace: NotRequired[Dict[str, Nullable[Any]]] - replicate: NotRequired[Dict[str, Nullable[Any]]] - sail_research: NotRequired[Dict[str, Nullable[Any]]] - sakana: NotRequired[Dict[str, Nullable[Any]]] - sambanova: NotRequired[Dict[str, Nullable[Any]]] - sambanova_cloaked: NotRequired[Dict[str, Nullable[Any]]] - seed: NotRequired[Dict[str, Nullable[Any]]] - sf_compute: NotRequired[Dict[str, Nullable[Any]]] - siliconflow: NotRequired[Dict[str, Nullable[Any]]] - sourceful: NotRequired[Dict[str, Nullable[Any]]] - stealth: NotRequired[Dict[str, Nullable[Any]]] - stepfun: NotRequired[Dict[str, Nullable[Any]]] - streamlake: NotRequired[Dict[str, Nullable[Any]]] - switchpoint: NotRequired[Dict[str, Nullable[Any]]] - targon: NotRequired[Dict[str, Nullable[Any]]] - tenstorrent: NotRequired[Dict[str, Nullable[Any]]] - together: NotRequired[Dict[str, Nullable[Any]]] - together_lite: NotRequired[Dict[str, Nullable[Any]]] - ubicloud: NotRequired[Dict[str, Nullable[Any]]] - upstage: NotRequired[Dict[str, Nullable[Any]]] - venice: NotRequired[Dict[str, Nullable[Any]]] - wafer: NotRequired[Dict[str, Nullable[Any]]] - wandb: NotRequired[Dict[str, Nullable[Any]]] - xai: NotRequired[Dict[str, Nullable[Any]]] - xiaomi: NotRequired[Dict[str, Nullable[Any]]] - z_ai: NotRequired[Dict[str, Nullable[Any]]] + oneai: NotRequired[Dict[str, Any]] + ai21: NotRequired[Dict[str, Any]] + aion_labs: NotRequired[Dict[str, Any]] + akashml: NotRequired[Dict[str, Any]] + alibaba: NotRequired[Dict[str, Any]] + amazon_bedrock: NotRequired[Dict[str, Any]] + amazon_nova: NotRequired[Dict[str, Any]] + ambient: NotRequired[Dict[str, Any]] + anthropic: NotRequired[Dict[str, Any]] + anyscale: NotRequired[Dict[str, Any]] + arcee_ai: NotRequired[Dict[str, Any]] + atlas_cloud: NotRequired[Dict[str, Any]] + atoma: NotRequired[Dict[str, Any]] + avian: NotRequired[Dict[str, Any]] + azure: NotRequired[Dict[str, Any]] + baidu: NotRequired[Dict[str, Any]] + baseten: NotRequired[Dict[str, Any]] + black_forest_labs: NotRequired[Dict[str, Any]] + byteplus: NotRequired[Dict[str, Any]] + centml: NotRequired[Dict[str, Any]] + cerebras: NotRequired[Dict[str, Any]] + chutes: NotRequired[Dict[str, Any]] + cirrascale: NotRequired[Dict[str, Any]] + clarifai: NotRequired[Dict[str, Any]] + cloudflare: NotRequired[Dict[str, Any]] + cohere: NotRequired[Dict[str, Any]] + crofai: NotRequired[Dict[str, Any]] + crucible: NotRequired[Dict[str, Any]] + crusoe: NotRequired[Dict[str, Any]] + darkbloom: NotRequired[Dict[str, Any]] + decart: NotRequired[Dict[str, Any]] + deepgram: NotRequired[Dict[str, Any]] + deepinfra: NotRequired[Dict[str, Any]] + deepseek: NotRequired[Dict[str, Any]] + dekallm: NotRequired[Dict[str, Any]] + digitalocean: NotRequired[Dict[str, Any]] + enfer: NotRequired[Dict[str, Any]] + fake_provider: NotRequired[Dict[str, Any]] + featherless: NotRequired[Dict[str, Any]] + fireworks: NotRequired[Dict[str, Any]] + friendli: NotRequired[Dict[str, Any]] + gmicloud: NotRequired[Dict[str, Any]] + google_ai_studio: NotRequired[Dict[str, Any]] + google_vertex: NotRequired[Dict[str, Any]] + gopomelo: NotRequired[Dict[str, Any]] + groq: NotRequired[Dict[str, Any]] + heygen: NotRequired[Dict[str, Any]] + huggingface: NotRequired[Dict[str, Any]] + hyperbolic: NotRequired[Dict[str, Any]] + hyperbolic_quantized: NotRequired[Dict[str, Any]] + inception: NotRequired[Dict[str, Any]] + inceptron: NotRequired[Dict[str, Any]] + inferact_vllm: NotRequired[Dict[str, Any]] + inference_net: NotRequired[Dict[str, Any]] + infermatic: NotRequired[Dict[str, Any]] + inflection: NotRequired[Dict[str, Any]] + inocloud: NotRequired[Dict[str, Any]] + io_net: NotRequired[Dict[str, Any]] + ionstream: NotRequired[Dict[str, Any]] + klusterai: NotRequired[Dict[str, Any]] + krea: NotRequired[Dict[str, Any]] + lambda_: NotRequired[Dict[str, Any]] + lepton: NotRequired[Dict[str, Any]] + liquid: NotRequired[Dict[str, Any]] + lynn: NotRequired[Dict[str, Any]] + lynn_private: NotRequired[Dict[str, Any]] + mancer: NotRequired[Dict[str, Any]] + mancer_old: NotRequired[Dict[str, Any]] + mara: NotRequired[Dict[str, Any]] + meta: NotRequired[Dict[str, Any]] + minimax: NotRequired[Dict[str, Any]] + mistral: NotRequired[Dict[str, Any]] + modal: NotRequired[Dict[str, Any]] + modelrun: NotRequired[Dict[str, Any]] + modular: NotRequired[Dict[str, Any]] + moonshotai: NotRequired[Dict[str, Any]] + morph: NotRequired[Dict[str, Any]] + ncompass: NotRequired[Dict[str, Any]] + nebius: NotRequired[Dict[str, Any]] + nex_agi: NotRequired[Dict[str, Any]] + nextbit: NotRequired[Dict[str, Any]] + nineteen: NotRequired[Dict[str, Any]] + novita: NotRequired[Dict[str, Any]] + nvidia: NotRequired[Dict[str, Any]] + octoai: NotRequired[Dict[str, Any]] + open_inference: NotRequired[Dict[str, Any]] + openai: NotRequired[Dict[str, Any]] + parasail: NotRequired[Dict[str, Any]] + perceptron: NotRequired[Dict[str, Any]] + perplexity: NotRequired[Dict[str, Any]] + phala: NotRequired[Dict[str, Any]] + poolside: NotRequired[Dict[str, Any]] + quiver: NotRequired[Dict[str, Any]] + recraft: NotRequired[Dict[str, Any]] + recursal: NotRequired[Dict[str, Any]] + reflection: NotRequired[Dict[str, Any]] + reka: NotRequired[Dict[str, Any]] + relace: NotRequired[Dict[str, Any]] + replicate: NotRequired[Dict[str, Any]] + sail_research: NotRequired[Dict[str, Any]] + sakana: NotRequired[Dict[str, Any]] + sambanova: NotRequired[Dict[str, Any]] + sambanova_cloaked: NotRequired[Dict[str, Any]] + seed: NotRequired[Dict[str, Any]] + sf_compute: NotRequired[Dict[str, Any]] + siliconflow: NotRequired[Dict[str, Any]] + sourceful: NotRequired[Dict[str, Any]] + stealth: NotRequired[Dict[str, Any]] + stepfun: NotRequired[Dict[str, Any]] + streamlake: NotRequired[Dict[str, Any]] + switchpoint: NotRequired[Dict[str, Any]] + targon: NotRequired[Dict[str, Any]] + tencent: NotRequired[Dict[str, Any]] + tenstorrent: NotRequired[Dict[str, Any]] + together: NotRequired[Dict[str, Any]] + together_lite: NotRequired[Dict[str, Any]] + ubicloud: NotRequired[Dict[str, Any]] + upstage: NotRequired[Dict[str, Any]] + venice: NotRequired[Dict[str, Any]] + wafer: NotRequired[Dict[str, Any]] + wandb: NotRequired[Dict[str, Any]] + xai: NotRequired[Dict[str, Any]] + xiaomi: NotRequired[Dict[str, Any]] + z_ai: NotRequired[Dict[str, Any]] class VideoGenerationRequestOptions(BaseModel): r"""Provider-specific options keyed by provider slug. Only options for the matched provider are forwarded; the rest are ignored. Unrecognized keys are silently dropped.""" - oneai: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="01ai") - ] = None + oneai: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="01ai")] = None - ai21: Optional[Dict[str, Nullable[Any]]] = None + ai21: Optional[Dict[str, Any]] = None aion_labs: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="aion-labs") + Optional[Dict[str, Any]], pydantic.Field(alias="aion-labs") ] = None - akashml: Optional[Dict[str, Nullable[Any]]] = None + akashml: Optional[Dict[str, Any]] = None - alibaba: Optional[Dict[str, Nullable[Any]]] = None + alibaba: Optional[Dict[str, Any]] = None amazon_bedrock: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="amazon-bedrock") + Optional[Dict[str, Any]], pydantic.Field(alias="amazon-bedrock") ] = None amazon_nova: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="amazon-nova") + Optional[Dict[str, Any]], pydantic.Field(alias="amazon-nova") ] = None - ambient: Optional[Dict[str, Nullable[Any]]] = None + ambient: Optional[Dict[str, Any]] = None - anthropic: Optional[Dict[str, Nullable[Any]]] = None + anthropic: Optional[Dict[str, Any]] = None - anyscale: Optional[Dict[str, Nullable[Any]]] = None + anyscale: Optional[Dict[str, Any]] = None - arcee_ai: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="arcee-ai") - ] = None + arcee_ai: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="arcee-ai")] = ( + None + ) atlas_cloud: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="atlas-cloud") + Optional[Dict[str, Any]], pydantic.Field(alias="atlas-cloud") ] = None - atoma: Optional[Dict[str, Nullable[Any]]] = None + atoma: Optional[Dict[str, Any]] = None - avian: Optional[Dict[str, Nullable[Any]]] = None + avian: Optional[Dict[str, Any]] = None - azure: Optional[Dict[str, Nullable[Any]]] = None + azure: Optional[Dict[str, Any]] = None - baidu: Optional[Dict[str, Nullable[Any]]] = None + baidu: Optional[Dict[str, Any]] = None - baseten: Optional[Dict[str, Nullable[Any]]] = None + baseten: Optional[Dict[str, Any]] = None black_forest_labs: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="black-forest-labs") + Optional[Dict[str, Any]], pydantic.Field(alias="black-forest-labs") ] = None - byteplus: Optional[Dict[str, Nullable[Any]]] = None + byteplus: Optional[Dict[str, Any]] = None - centml: Optional[Dict[str, Nullable[Any]]] = None + centml: Optional[Dict[str, Any]] = None - cerebras: Optional[Dict[str, Nullable[Any]]] = None + cerebras: Optional[Dict[str, Any]] = None - chutes: Optional[Dict[str, Nullable[Any]]] = None + chutes: Optional[Dict[str, Any]] = None - cirrascale: Optional[Dict[str, Nullable[Any]]] = None + cirrascale: Optional[Dict[str, Any]] = None - clarifai: Optional[Dict[str, Nullable[Any]]] = None + clarifai: Optional[Dict[str, Any]] = None - cloudflare: Optional[Dict[str, Nullable[Any]]] = None + cloudflare: Optional[Dict[str, Any]] = None - cohere: Optional[Dict[str, Nullable[Any]]] = None + cohere: Optional[Dict[str, Any]] = None - crofai: Optional[Dict[str, Nullable[Any]]] = None + crofai: Optional[Dict[str, Any]] = None - crucible: Optional[Dict[str, Nullable[Any]]] = None + crucible: Optional[Dict[str, Any]] = None - crusoe: Optional[Dict[str, Nullable[Any]]] = None + crusoe: Optional[Dict[str, Any]] = None - darkbloom: Optional[Dict[str, Nullable[Any]]] = None + darkbloom: Optional[Dict[str, Any]] = None - decart: Optional[Dict[str, Nullable[Any]]] = None + decart: Optional[Dict[str, Any]] = None - deepgram: Optional[Dict[str, Nullable[Any]]] = None + deepgram: Optional[Dict[str, Any]] = None - deepinfra: Optional[Dict[str, Nullable[Any]]] = None + deepinfra: Optional[Dict[str, Any]] = None - deepseek: Optional[Dict[str, Nullable[Any]]] = None + deepseek: Optional[Dict[str, Any]] = None - dekallm: Optional[Dict[str, Nullable[Any]]] = None + dekallm: Optional[Dict[str, Any]] = None - digitalocean: Optional[Dict[str, Nullable[Any]]] = None + digitalocean: Optional[Dict[str, Any]] = None - enfer: Optional[Dict[str, Nullable[Any]]] = None + enfer: Optional[Dict[str, Any]] = None fake_provider: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="fake-provider") + Optional[Dict[str, Any]], pydantic.Field(alias="fake-provider") ] = None - featherless: Optional[Dict[str, Nullable[Any]]] = None + featherless: Optional[Dict[str, Any]] = None - fireworks: Optional[Dict[str, Nullable[Any]]] = None + fireworks: Optional[Dict[str, Any]] = None - friendli: Optional[Dict[str, Nullable[Any]]] = None + friendli: Optional[Dict[str, Any]] = None - gmicloud: Optional[Dict[str, Nullable[Any]]] = None + gmicloud: Optional[Dict[str, Any]] = None google_ai_studio: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="google-ai-studio") + Optional[Dict[str, Any]], pydantic.Field(alias="google-ai-studio") ] = None google_vertex: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="google-vertex") + Optional[Dict[str, Any]], pydantic.Field(alias="google-vertex") ] = None - gopomelo: Optional[Dict[str, Nullable[Any]]] = None + gopomelo: Optional[Dict[str, Any]] = None - groq: Optional[Dict[str, Nullable[Any]]] = None + groq: Optional[Dict[str, Any]] = None - heygen: Optional[Dict[str, Nullable[Any]]] = None + heygen: Optional[Dict[str, Any]] = None - huggingface: Optional[Dict[str, Nullable[Any]]] = None + huggingface: Optional[Dict[str, Any]] = None - hyperbolic: Optional[Dict[str, Nullable[Any]]] = None + hyperbolic: Optional[Dict[str, Any]] = None hyperbolic_quantized: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="hyperbolic-quantized") + Optional[Dict[str, Any]], pydantic.Field(alias="hyperbolic-quantized") ] = None - inception: Optional[Dict[str, Nullable[Any]]] = None + inception: Optional[Dict[str, Any]] = None - inceptron: Optional[Dict[str, Nullable[Any]]] = None + inceptron: Optional[Dict[str, Any]] = None inferact_vllm: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="inferact-vllm") + Optional[Dict[str, Any]], pydantic.Field(alias="inferact-vllm") ] = None inference_net: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="inference-net") + Optional[Dict[str, Any]], pydantic.Field(alias="inference-net") ] = None - infermatic: Optional[Dict[str, Nullable[Any]]] = None + infermatic: Optional[Dict[str, Any]] = None - inflection: Optional[Dict[str, Nullable[Any]]] = None + inflection: Optional[Dict[str, Any]] = None - inocloud: Optional[Dict[str, Nullable[Any]]] = None + inocloud: Optional[Dict[str, Any]] = None - io_net: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="io-net") - ] = None + io_net: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="io-net")] = None - ionstream: Optional[Dict[str, Nullable[Any]]] = None + ionstream: Optional[Dict[str, Any]] = None - klusterai: Optional[Dict[str, Nullable[Any]]] = None + klusterai: Optional[Dict[str, Any]] = None - krea: Optional[Dict[str, Nullable[Any]]] = None + krea: Optional[Dict[str, Any]] = None - lambda_: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="lambda") - ] = None + lambda_: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="lambda")] = None - lepton: Optional[Dict[str, Nullable[Any]]] = None + lepton: Optional[Dict[str, Any]] = None - liquid: Optional[Dict[str, Nullable[Any]]] = None + liquid: Optional[Dict[str, Any]] = None - lynn: Optional[Dict[str, Nullable[Any]]] = None + lynn: Optional[Dict[str, Any]] = None lynn_private: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="lynn-private") + Optional[Dict[str, Any]], pydantic.Field(alias="lynn-private") ] = None - mancer: Optional[Dict[str, Nullable[Any]]] = None + mancer: Optional[Dict[str, Any]] = None mancer_old: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="mancer-old") + Optional[Dict[str, Any]], pydantic.Field(alias="mancer-old") ] = None - mara: Optional[Dict[str, Nullable[Any]]] = None + mara: Optional[Dict[str, Any]] = None - meta: Optional[Dict[str, Nullable[Any]]] = None + meta: Optional[Dict[str, Any]] = None - minimax: Optional[Dict[str, Nullable[Any]]] = None + minimax: Optional[Dict[str, Any]] = None - mistral: Optional[Dict[str, Nullable[Any]]] = None + mistral: Optional[Dict[str, Any]] = None - modal: Optional[Dict[str, Nullable[Any]]] = None + modal: Optional[Dict[str, Any]] = None - modelrun: Optional[Dict[str, Nullable[Any]]] = None + modelrun: Optional[Dict[str, Any]] = None - modular: Optional[Dict[str, Nullable[Any]]] = None + modular: Optional[Dict[str, Any]] = None - moonshotai: Optional[Dict[str, Nullable[Any]]] = None + moonshotai: Optional[Dict[str, Any]] = None - morph: Optional[Dict[str, Nullable[Any]]] = None + morph: Optional[Dict[str, Any]] = None - ncompass: Optional[Dict[str, Nullable[Any]]] = None + ncompass: Optional[Dict[str, Any]] = None - nebius: Optional[Dict[str, Nullable[Any]]] = None + nebius: Optional[Dict[str, Any]] = None - nex_agi: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="nex-agi") - ] = None + nex_agi: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="nex-agi")] = None - nextbit: Optional[Dict[str, Nullable[Any]]] = None + nextbit: Optional[Dict[str, Any]] = None - nineteen: Optional[Dict[str, Nullable[Any]]] = None + nineteen: Optional[Dict[str, Any]] = None - novita: Optional[Dict[str, Nullable[Any]]] = None + novita: Optional[Dict[str, Any]] = None - nvidia: Optional[Dict[str, Nullable[Any]]] = None + nvidia: Optional[Dict[str, Any]] = None - octoai: Optional[Dict[str, Nullable[Any]]] = None + octoai: Optional[Dict[str, Any]] = None open_inference: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="open-inference") + Optional[Dict[str, Any]], pydantic.Field(alias="open-inference") ] = None - openai: Optional[Dict[str, Nullable[Any]]] = None + openai: Optional[Dict[str, Any]] = None - parasail: Optional[Dict[str, Nullable[Any]]] = None + parasail: Optional[Dict[str, Any]] = None - perceptron: Optional[Dict[str, Nullable[Any]]] = None + perceptron: Optional[Dict[str, Any]] = None - perplexity: Optional[Dict[str, Nullable[Any]]] = None + perplexity: Optional[Dict[str, Any]] = None - phala: Optional[Dict[str, Nullable[Any]]] = None + phala: Optional[Dict[str, Any]] = None - poolside: Optional[Dict[str, Nullable[Any]]] = None + poolside: Optional[Dict[str, Any]] = None - quiver: Optional[Dict[str, Nullable[Any]]] = None + quiver: Optional[Dict[str, Any]] = None - recraft: Optional[Dict[str, Nullable[Any]]] = None + recraft: Optional[Dict[str, Any]] = None - recursal: Optional[Dict[str, Nullable[Any]]] = None + recursal: Optional[Dict[str, Any]] = None - reflection: Optional[Dict[str, Nullable[Any]]] = None + reflection: Optional[Dict[str, Any]] = None - reka: Optional[Dict[str, Nullable[Any]]] = None + reka: Optional[Dict[str, Any]] = None - relace: Optional[Dict[str, Nullable[Any]]] = None + relace: Optional[Dict[str, Any]] = None - replicate: Optional[Dict[str, Nullable[Any]]] = None + replicate: Optional[Dict[str, Any]] = None sail_research: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="sail-research") + Optional[Dict[str, Any]], pydantic.Field(alias="sail-research") ] = None - sakana: Optional[Dict[str, Nullable[Any]]] = None + sakana: Optional[Dict[str, Any]] = None - sambanova: Optional[Dict[str, Nullable[Any]]] = None + sambanova: Optional[Dict[str, Any]] = None sambanova_cloaked: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="sambanova-cloaked") + Optional[Dict[str, Any]], pydantic.Field(alias="sambanova-cloaked") ] = None - seed: Optional[Dict[str, Nullable[Any]]] = None + seed: Optional[Dict[str, Any]] = None sf_compute: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="sf-compute") + Optional[Dict[str, Any]], pydantic.Field(alias="sf-compute") ] = None - siliconflow: Optional[Dict[str, Nullable[Any]]] = None + siliconflow: Optional[Dict[str, Any]] = None + + sourceful: Optional[Dict[str, Any]] = None - sourceful: Optional[Dict[str, Nullable[Any]]] = None + stealth: Optional[Dict[str, Any]] = None - stealth: Optional[Dict[str, Nullable[Any]]] = None + stepfun: Optional[Dict[str, Any]] = None - stepfun: Optional[Dict[str, Nullable[Any]]] = None + streamlake: Optional[Dict[str, Any]] = None - streamlake: Optional[Dict[str, Nullable[Any]]] = None + switchpoint: Optional[Dict[str, Any]] = None - switchpoint: Optional[Dict[str, Nullable[Any]]] = None + targon: Optional[Dict[str, Any]] = None - targon: Optional[Dict[str, Nullable[Any]]] = None + tencent: Optional[Dict[str, Any]] = None - tenstorrent: Optional[Dict[str, Nullable[Any]]] = None + tenstorrent: Optional[Dict[str, Any]] = None - together: Optional[Dict[str, Nullable[Any]]] = None + together: Optional[Dict[str, Any]] = None together_lite: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="together-lite") + Optional[Dict[str, Any]], pydantic.Field(alias="together-lite") ] = None - ubicloud: Optional[Dict[str, Nullable[Any]]] = None + ubicloud: Optional[Dict[str, Any]] = None - upstage: Optional[Dict[str, Nullable[Any]]] = None + upstage: Optional[Dict[str, Any]] = None - venice: Optional[Dict[str, Nullable[Any]]] = None + venice: Optional[Dict[str, Any]] = None - wafer: Optional[Dict[str, Nullable[Any]]] = None + wafer: Optional[Dict[str, Any]] = None - wandb: Optional[Dict[str, Nullable[Any]]] = None + wandb: Optional[Dict[str, Any]] = None - xai: Optional[Dict[str, Nullable[Any]]] = None + xai: Optional[Dict[str, Any]] = None - xiaomi: Optional[Dict[str, Nullable[Any]]] = None + xiaomi: Optional[Dict[str, Any]] = None - z_ai: Annotated[ - Optional[Dict[str, Nullable[Any]]], pydantic.Field(alias="z-ai") - ] = None + z_ai: Annotated[Optional[Dict[str, Any]], pydantic.Field(alias="z-ai")] = None @model_serializer(mode="wrap") def serialize_model(self, handler): @@ -568,6 +561,7 @@ def serialize_model(self, handler): "streamlake", "switchpoint", "targon", + "tencent", "tenstorrent", "together", "together-lite", diff --git a/src/openrouter/datasets.py b/src/openrouter/datasets.py index 3d9437c8..a1e84756 100644 --- a/src/openrouter/datasets.py +++ b/src/openrouter/datasets.py @@ -25,7 +25,7 @@ def get_app_rankings( start_date: Optional[str] = None, end_date: Optional[str] = None, limit: Optional[int] = 50, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, @@ -235,7 +235,7 @@ async def get_app_rankings_async( start_date: Optional[str] = None, end_date: Optional[str] = None, limit: Optional[int] = 50, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, timeout_ms: Optional[int] = None, diff --git a/src/openrouter/embeddings.py b/src/openrouter/embeddings.py index 906426aa..f570a071 100644 --- a/src/openrouter/embeddings.py +++ b/src/openrouter/embeddings.py @@ -433,7 +433,7 @@ def list_models( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 500, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -589,7 +589,7 @@ async def list_models_async( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 500, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, diff --git a/src/openrouter/errors/badgatewayresponse_error.py b/src/openrouter/errors/badgatewayresponse_error.py index 28ce1d4e..4460dda2 100644 --- a/src/openrouter/errors/badgatewayresponse_error.py +++ b/src/openrouter/errors/badgatewayresponse_error.py @@ -7,14 +7,14 @@ badgatewayresponseerrordata as components_badgatewayresponseerrordata, ) from openrouter.errors import OpenRouterError -from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET +from openrouter.types import BaseModel, OptionalNullable, UNSET from typing import Any, Dict, Optional class BadGatewayResponseErrorData(BaseModel): error: components_badgatewayresponseerrordata.BadGatewayResponseErrorData r"""Error data for BadGatewayResponse""" - openrouter_metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + openrouter_metadata: OptionalNullable[Dict[str, Any]] = UNSET user_id: OptionalNullable[str] = UNSET diff --git a/src/openrouter/errors/badrequestresponse_error.py b/src/openrouter/errors/badrequestresponse_error.py index 514a2727..40bdc064 100644 --- a/src/openrouter/errors/badrequestresponse_error.py +++ b/src/openrouter/errors/badrequestresponse_error.py @@ -7,14 +7,14 @@ badrequestresponseerrordata as components_badrequestresponseerrordata, ) from openrouter.errors import OpenRouterError -from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET +from openrouter.types import BaseModel, OptionalNullable, UNSET from typing import Any, Dict, Optional class BadRequestResponseErrorData(BaseModel): error: components_badrequestresponseerrordata.BadRequestResponseErrorData r"""Error data for BadRequestResponse""" - openrouter_metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + openrouter_metadata: OptionalNullable[Dict[str, Any]] = UNSET user_id: OptionalNullable[str] = UNSET diff --git a/src/openrouter/errors/conflictresponse_error.py b/src/openrouter/errors/conflictresponse_error.py index 434f65c0..09348be5 100644 --- a/src/openrouter/errors/conflictresponse_error.py +++ b/src/openrouter/errors/conflictresponse_error.py @@ -7,14 +7,14 @@ conflictresponseerrordata as components_conflictresponseerrordata, ) from openrouter.errors import OpenRouterError -from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET +from openrouter.types import BaseModel, OptionalNullable, UNSET from typing import Any, Dict, Optional class ConflictResponseErrorData(BaseModel): error: components_conflictresponseerrordata.ConflictResponseErrorData r"""Error data for ConflictResponse""" - openrouter_metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + openrouter_metadata: OptionalNullable[Dict[str, Any]] = UNSET user_id: OptionalNullable[str] = UNSET diff --git a/src/openrouter/errors/edgenetworktimeoutresponse_error.py b/src/openrouter/errors/edgenetworktimeoutresponse_error.py index 4ba05c45..8056669b 100644 --- a/src/openrouter/errors/edgenetworktimeoutresponse_error.py +++ b/src/openrouter/errors/edgenetworktimeoutresponse_error.py @@ -7,14 +7,14 @@ edgenetworktimeoutresponseerrordata as components_edgenetworktimeoutresponseerrordata, ) from openrouter.errors import OpenRouterError -from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET +from openrouter.types import BaseModel, OptionalNullable, UNSET from typing import Any, Dict, Optional class EdgeNetworkTimeoutResponseErrorData(BaseModel): error: components_edgenetworktimeoutresponseerrordata.EdgeNetworkTimeoutResponseErrorData r"""Error data for EdgeNetworkTimeoutResponse""" - openrouter_metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + openrouter_metadata: OptionalNullable[Dict[str, Any]] = UNSET user_id: OptionalNullable[str] = UNSET diff --git a/src/openrouter/errors/forbiddenresponse_error.py b/src/openrouter/errors/forbiddenresponse_error.py index f6bd1810..97c14f31 100644 --- a/src/openrouter/errors/forbiddenresponse_error.py +++ b/src/openrouter/errors/forbiddenresponse_error.py @@ -7,14 +7,14 @@ forbiddenresponseerrordata as components_forbiddenresponseerrordata, ) from openrouter.errors import OpenRouterError -from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET +from openrouter.types import BaseModel, OptionalNullable, UNSET from typing import Any, Dict, Optional class ForbiddenResponseErrorData(BaseModel): error: components_forbiddenresponseerrordata.ForbiddenResponseErrorData r"""Error data for ForbiddenResponse""" - openrouter_metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + openrouter_metadata: OptionalNullable[Dict[str, Any]] = UNSET user_id: OptionalNullable[str] = UNSET diff --git a/src/openrouter/errors/internalserverresponse_error.py b/src/openrouter/errors/internalserverresponse_error.py index 207c80c8..e6364155 100644 --- a/src/openrouter/errors/internalserverresponse_error.py +++ b/src/openrouter/errors/internalserverresponse_error.py @@ -7,14 +7,14 @@ internalserverresponseerrordata as components_internalserverresponseerrordata, ) from openrouter.errors import OpenRouterError -from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET +from openrouter.types import BaseModel, OptionalNullable, UNSET from typing import Any, Dict, Optional class InternalServerResponseErrorData(BaseModel): error: components_internalserverresponseerrordata.InternalServerResponseErrorData r"""Error data for InternalServerResponse""" - openrouter_metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + openrouter_metadata: OptionalNullable[Dict[str, Any]] = UNSET user_id: OptionalNullable[str] = UNSET diff --git a/src/openrouter/errors/notfoundresponse_error.py b/src/openrouter/errors/notfoundresponse_error.py index a79ff3ce..2de2d021 100644 --- a/src/openrouter/errors/notfoundresponse_error.py +++ b/src/openrouter/errors/notfoundresponse_error.py @@ -7,14 +7,14 @@ notfoundresponseerrordata as components_notfoundresponseerrordata, ) from openrouter.errors import OpenRouterError -from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET +from openrouter.types import BaseModel, OptionalNullable, UNSET from typing import Any, Dict, Optional class NotFoundResponseErrorData(BaseModel): error: components_notfoundresponseerrordata.NotFoundResponseErrorData r"""Error data for NotFoundResponse""" - openrouter_metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + openrouter_metadata: OptionalNullable[Dict[str, Any]] = UNSET user_id: OptionalNullable[str] = UNSET diff --git a/src/openrouter/errors/payloadtoolargeresponse_error.py b/src/openrouter/errors/payloadtoolargeresponse_error.py index 2f118141..8a82cc3d 100644 --- a/src/openrouter/errors/payloadtoolargeresponse_error.py +++ b/src/openrouter/errors/payloadtoolargeresponse_error.py @@ -7,14 +7,14 @@ payloadtoolargeresponseerrordata as components_payloadtoolargeresponseerrordata, ) from openrouter.errors import OpenRouterError -from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET +from openrouter.types import BaseModel, OptionalNullable, UNSET from typing import Any, Dict, Optional class PayloadTooLargeResponseErrorData(BaseModel): error: components_payloadtoolargeresponseerrordata.PayloadTooLargeResponseErrorData r"""Error data for PayloadTooLargeResponse""" - openrouter_metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + openrouter_metadata: OptionalNullable[Dict[str, Any]] = UNSET user_id: OptionalNullable[str] = UNSET diff --git a/src/openrouter/errors/paymentrequiredresponse_error.py b/src/openrouter/errors/paymentrequiredresponse_error.py index 1bd7e6bf..7a5b4d0a 100644 --- a/src/openrouter/errors/paymentrequiredresponse_error.py +++ b/src/openrouter/errors/paymentrequiredresponse_error.py @@ -7,14 +7,14 @@ paymentrequiredresponseerrordata as components_paymentrequiredresponseerrordata, ) from openrouter.errors import OpenRouterError -from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET +from openrouter.types import BaseModel, OptionalNullable, UNSET from typing import Any, Dict, Optional class PaymentRequiredResponseErrorData(BaseModel): error: components_paymentrequiredresponseerrordata.PaymentRequiredResponseErrorData r"""Error data for PaymentRequiredResponse""" - openrouter_metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + openrouter_metadata: OptionalNullable[Dict[str, Any]] = UNSET user_id: OptionalNullable[str] = UNSET diff --git a/src/openrouter/errors/provideroverloadedresponse_error.py b/src/openrouter/errors/provideroverloadedresponse_error.py index 4594e433..8850df35 100644 --- a/src/openrouter/errors/provideroverloadedresponse_error.py +++ b/src/openrouter/errors/provideroverloadedresponse_error.py @@ -7,14 +7,14 @@ provideroverloadedresponseerrordata as components_provideroverloadedresponseerrordata, ) from openrouter.errors import OpenRouterError -from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET +from openrouter.types import BaseModel, OptionalNullable, UNSET from typing import Any, Dict, Optional class ProviderOverloadedResponseErrorData(BaseModel): error: components_provideroverloadedresponseerrordata.ProviderOverloadedResponseErrorData r"""Error data for ProviderOverloadedResponse""" - openrouter_metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + openrouter_metadata: OptionalNullable[Dict[str, Any]] = UNSET user_id: OptionalNullable[str] = UNSET diff --git a/src/openrouter/errors/requesttimeoutresponse_error.py b/src/openrouter/errors/requesttimeoutresponse_error.py index eb403d9a..fb025fdc 100644 --- a/src/openrouter/errors/requesttimeoutresponse_error.py +++ b/src/openrouter/errors/requesttimeoutresponse_error.py @@ -7,14 +7,14 @@ requesttimeoutresponseerrordata as components_requesttimeoutresponseerrordata, ) from openrouter.errors import OpenRouterError -from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET +from openrouter.types import BaseModel, OptionalNullable, UNSET from typing import Any, Dict, Optional class RequestTimeoutResponseErrorData(BaseModel): error: components_requesttimeoutresponseerrordata.RequestTimeoutResponseErrorData r"""Error data for RequestTimeoutResponse""" - openrouter_metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + openrouter_metadata: OptionalNullable[Dict[str, Any]] = UNSET user_id: OptionalNullable[str] = UNSET diff --git a/src/openrouter/errors/serviceunavailableresponse_error.py b/src/openrouter/errors/serviceunavailableresponse_error.py index 0c9c74b3..46fda7a3 100644 --- a/src/openrouter/errors/serviceunavailableresponse_error.py +++ b/src/openrouter/errors/serviceunavailableresponse_error.py @@ -7,14 +7,14 @@ serviceunavailableresponseerrordata as components_serviceunavailableresponseerrordata, ) from openrouter.errors import OpenRouterError -from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET +from openrouter.types import BaseModel, OptionalNullable, UNSET from typing import Any, Dict, Optional class ServiceUnavailableResponseErrorData(BaseModel): error: components_serviceunavailableresponseerrordata.ServiceUnavailableResponseErrorData r"""Error data for ServiceUnavailableResponse""" - openrouter_metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + openrouter_metadata: OptionalNullable[Dict[str, Any]] = UNSET user_id: OptionalNullable[str] = UNSET diff --git a/src/openrouter/errors/toomanyrequestsresponse_error.py b/src/openrouter/errors/toomanyrequestsresponse_error.py index fbbad164..68cf4339 100644 --- a/src/openrouter/errors/toomanyrequestsresponse_error.py +++ b/src/openrouter/errors/toomanyrequestsresponse_error.py @@ -7,14 +7,14 @@ toomanyrequestsresponseerrordata as components_toomanyrequestsresponseerrordata, ) from openrouter.errors import OpenRouterError -from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET +from openrouter.types import BaseModel, OptionalNullable, UNSET from typing import Any, Dict, Optional class TooManyRequestsResponseErrorData(BaseModel): error: components_toomanyrequestsresponseerrordata.TooManyRequestsResponseErrorData r"""Error data for TooManyRequestsResponse""" - openrouter_metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + openrouter_metadata: OptionalNullable[Dict[str, Any]] = UNSET user_id: OptionalNullable[str] = UNSET diff --git a/src/openrouter/errors/unauthorizedresponse_error.py b/src/openrouter/errors/unauthorizedresponse_error.py index f70ea1cc..7ccdc76a 100644 --- a/src/openrouter/errors/unauthorizedresponse_error.py +++ b/src/openrouter/errors/unauthorizedresponse_error.py @@ -7,14 +7,14 @@ unauthorizedresponseerrordata as components_unauthorizedresponseerrordata, ) from openrouter.errors import OpenRouterError -from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET +from openrouter.types import BaseModel, OptionalNullable, UNSET from typing import Any, Dict, Optional class UnauthorizedResponseErrorData(BaseModel): error: components_unauthorizedresponseerrordata.UnauthorizedResponseErrorData r"""Error data for UnauthorizedResponse""" - openrouter_metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + openrouter_metadata: OptionalNullable[Dict[str, Any]] = UNSET user_id: OptionalNullable[str] = UNSET diff --git a/src/openrouter/errors/unprocessableentityresponse_error.py b/src/openrouter/errors/unprocessableentityresponse_error.py index d858f3b5..51b56d9c 100644 --- a/src/openrouter/errors/unprocessableentityresponse_error.py +++ b/src/openrouter/errors/unprocessableentityresponse_error.py @@ -7,14 +7,14 @@ unprocessableentityresponseerrordata as components_unprocessableentityresponseerrordata, ) from openrouter.errors import OpenRouterError -from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET +from openrouter.types import BaseModel, OptionalNullable, UNSET from typing import Any, Dict, Optional class UnprocessableEntityResponseErrorData(BaseModel): error: components_unprocessableentityresponseerrordata.UnprocessableEntityResponseErrorData r"""Error data for UnprocessableEntityResponse""" - openrouter_metadata: OptionalNullable[Dict[str, Nullable[Any]]] = UNSET + openrouter_metadata: OptionalNullable[Dict[str, Any]] = UNSET user_id: OptionalNullable[str] = UNSET diff --git a/src/openrouter/guardrails.py b/src/openrouter/guardrails.py index b9fa1254..6a7bc4ab 100644 --- a/src/openrouter/guardrails.py +++ b/src/openrouter/guardrails.py @@ -19,7 +19,7 @@ def list( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, workspace_id: Optional[str] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, @@ -181,7 +181,7 @@ async def list_async( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, workspace_id: Optional[str] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, @@ -1715,7 +1715,7 @@ def list_guardrail_key_assignments( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -1882,7 +1882,7 @@ async def list_guardrail_key_assignments_async( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -2638,7 +2638,7 @@ def list_guardrail_member_assignments( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -2805,7 +2805,7 @@ async def list_guardrail_member_assignments_async( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -3564,7 +3564,7 @@ def list_key_assignments( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -3722,7 +3722,7 @@ async def list_key_assignments_async( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -3883,7 +3883,7 @@ def list_member_assignments( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -4041,7 +4041,7 @@ async def list_member_assignments_async( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, diff --git a/src/openrouter/models_.py b/src/openrouter/models_.py index 1a85e997..2fa007f0 100644 --- a/src/openrouter/models_.py +++ b/src/openrouter/models_.py @@ -271,7 +271,7 @@ def list( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 500, category: Optional[operations.GetModelsCategory] = None, supported_parameters: Optional[str] = None, @@ -533,7 +533,7 @@ async def list_async( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 500, category: Optional[operations.GetModelsCategory] = None, supported_parameters: Optional[str] = None, @@ -1044,7 +1044,7 @@ def list_for_user( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 500, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -1211,7 +1211,7 @@ async def list_for_user_async( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 500, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, diff --git a/src/openrouter/observability.py b/src/openrouter/observability.py index 67318c78..e59a1eb3 100644 --- a/src/openrouter/observability.py +++ b/src/openrouter/observability.py @@ -4,7 +4,7 @@ from jsonpath import JSONPath from openrouter import components, errors, operations, utils from openrouter._hooks import HookContext -from openrouter.types import Nullable, OptionalNullable, UNSET +from openrouter.types import OptionalNullable, UNSET from openrouter.utils import get_security_from_env from openrouter.utils.unmarshal_json_response import unmarshal_json_response from typing import Any, Awaitable, Dict, Iterable, List, Mapping, Optional, Union @@ -19,7 +19,7 @@ def list( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, workspace_id: Optional[str] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, @@ -181,7 +181,7 @@ async def list_async( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, workspace_id: Optional[str] = None, retries: OptionalNullable[utils.RetryConfig] = UNSET, @@ -345,7 +345,7 @@ async def empty_result(): def create( self, *, - config: Mapping[str, Nullable[Any]], + config: Mapping[str, Any], name: str, type_: components.CreateObservabilityDestinationRequestType, http_referer: Optional[str] = None, @@ -410,7 +410,7 @@ def create( api_key_hashes=utils.unmarshal( api_key_hashes, OptionalNullable[List[str]] ), - config=utils.unmarshal(config, Dict[str, Nullable[Any]]), + config=utils.unmarshal(config, Dict[str, Any]), enabled=enabled, filter_rules=utils.get_pydantic_model( filter_rules, @@ -528,7 +528,7 @@ def create( async def create_async( self, *, - config: Mapping[str, Nullable[Any]], + config: Mapping[str, Any], name: str, type_: components.CreateObservabilityDestinationRequestType, http_referer: Optional[str] = None, @@ -593,7 +593,7 @@ async def create_async( api_key_hashes=utils.unmarshal( api_key_hashes, OptionalNullable[List[str]] ), - config=utils.unmarshal(config, Dict[str, Nullable[Any]]), + config=utils.unmarshal(config, Dict[str, Any]), enabled=enabled, filter_rules=utils.get_pydantic_model( filter_rules, @@ -1236,7 +1236,7 @@ def update( x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, api_key_hashes: OptionalNullable[Iterable[str]] = UNSET, - config: Optional[Mapping[str, Nullable[Any]]] = None, + config: Optional[Mapping[str, Any]] = None, enabled: Optional[bool] = None, filter_rules: OptionalNullable[ Union[ @@ -1295,7 +1295,7 @@ def update( api_key_hashes=utils.unmarshal( api_key_hashes, OptionalNullable[List[str]] ), - config=utils.unmarshal(config, Optional[Dict[str, Nullable[Any]]]), + config=utils.unmarshal(config, Optional[Dict[str, Any]]), enabled=enabled, filter_rules=utils.get_pydantic_model( filter_rules, @@ -1416,7 +1416,7 @@ async def update_async( x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, api_key_hashes: OptionalNullable[Iterable[str]] = UNSET, - config: Optional[Mapping[str, Nullable[Any]]] = None, + config: Optional[Mapping[str, Any]] = None, enabled: Optional[bool] = None, filter_rules: OptionalNullable[ Union[ @@ -1475,7 +1475,7 @@ async def update_async( api_key_hashes=utils.unmarshal( api_key_hashes, OptionalNullable[List[str]] ), - config=utils.unmarshal(config, Optional[Dict[str, Nullable[Any]]]), + config=utils.unmarshal(config, Optional[Dict[str, Any]]), enabled=enabled, filter_rules=utils.get_pydantic_model( filter_rules, diff --git a/src/openrouter/operations/getapprankings.py b/src/openrouter/operations/getapprankings.py index e5f42ea0..a8e00f73 100644 --- a/src/openrouter/operations/getapprankings.py +++ b/src/openrouter/operations/getapprankings.py @@ -2,7 +2,13 @@ from __future__ import annotations from openrouter.components import apprankingsresponse as components_apprankingsresponse -from openrouter.types import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from openrouter.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET_SENTINEL, + UnrecognizedStr, +) from openrouter.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata import pydantic from pydantic import model_serializer @@ -145,7 +151,7 @@ class GetAppRankingsRequestTypedDict(TypedDict): r"""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.""" limit: NotRequired[int] r"""Maximum number of apps to return (1-100). Defaults to 50.""" - offset: NotRequired[int] + offset: NotRequired[Nullable[int]] r"""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`.""" @@ -215,7 +221,7 @@ class GetAppRankingsRequest(BaseModel): r"""Maximum number of apps to return (1-100). Defaults to 50.""" offset: Annotated[ - Optional[int], + OptionalNullable[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 0 r"""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`.""" @@ -236,15 +242,24 @@ def serialize_model(self, handler): "offset", ] ) + nullable_fields = set(["offset"]) 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) if val != UNSET_SENTINEL: - if val is not None or k not in optional_fields: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): m[k] = val return m diff --git a/src/openrouter/operations/getmodels.py b/src/openrouter/operations/getmodels.py index de855463..3fa8982c 100644 --- a/src/openrouter/operations/getmodels.py +++ b/src/openrouter/operations/getmodels.py @@ -153,7 +153,7 @@ class GetModelsRequestTypedDict(TypedDict): r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings. """ - offset: NotRequired[int] + offset: NotRequired[Nullable[int]] r"""Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned""" limit: NotRequired[int] r"""Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned""" @@ -243,7 +243,7 @@ class GetModelsRequest(BaseModel): """ offset: Annotated[ - Optional[int], + OptionalNullable[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 0 r"""Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned""" @@ -456,6 +456,7 @@ def serialize_model(self, handler): ) nullable_fields = set( [ + "offset", "min_price", "max_price", "min_output_price", diff --git a/src/openrouter/operations/list.py b/src/openrouter/operations/list.py index cc90375e..75480914 100644 --- a/src/openrouter/operations/list.py +++ b/src/openrouter/operations/list.py @@ -96,7 +96,7 @@ class ListRequestTypedDict(TypedDict): """ include_disabled: NotRequired[bool] r"""Whether to include disabled API keys in the response""" - offset: NotRequired[int] + offset: NotRequired[Nullable[int]] r"""Number of API keys to skip for pagination""" workspace_id: NotRequired[str] r"""Filter API keys by workspace ID. By default, keys in the default workspace are returned.""" @@ -138,9 +138,9 @@ class ListRequest(BaseModel): r"""Whether to include disabled API keys in the response""" offset: Annotated[ - Optional[int], + OptionalNullable[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), - ] = None + ] = UNSET r"""Number of API keys to skip for pagination""" workspace_id: Annotated[ @@ -161,15 +161,24 @@ def serialize_model(self, handler): "workspace_id", ] ) + nullable_fields = set(["offset"]) 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) if val != UNSET_SENTINEL: - if val is not None or k not in optional_fields: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): m[k] = val return m diff --git a/src/openrouter/operations/listbyokkeys.py b/src/openrouter/operations/listbyokkeys.py index b248ac9b..6bf7df43 100644 --- a/src/openrouter/operations/listbyokkeys.py +++ b/src/openrouter/operations/listbyokkeys.py @@ -4,7 +4,13 @@ from openrouter.components import ( listbyokkeysresponse as components_listbyokkeysresponse, ) -from openrouter.types import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from openrouter.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET_SENTINEL, + UnrecognizedStr, +) from openrouter.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata import pydantic from pydantic import model_serializer @@ -161,6 +167,7 @@ def serialize_model(self, handler): "stepfun", "streamlake", "switchpoint", + "tencent", "tenstorrent", "together", "upstage", @@ -190,7 +197,7 @@ class ListBYOKKeysRequestTypedDict(TypedDict): r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings. """ - offset: NotRequired[int] + offset: NotRequired[Nullable[int]] r"""Number of records to skip for pagination""" limit: NotRequired[int] r"""Maximum number of records to return (max 100)""" @@ -230,7 +237,7 @@ class ListBYOKKeysRequest(BaseModel): """ offset: Annotated[ - Optional[int], + OptionalNullable[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 0 r"""Number of records to skip for pagination""" @@ -266,15 +273,24 @@ def serialize_model(self, handler): "provider", ] ) + nullable_fields = set(["offset"]) 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) if val != UNSET_SENTINEL: - if val is not None or k not in optional_fields: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): m[k] = val return m diff --git a/src/openrouter/operations/listembeddingsmodels.py b/src/openrouter/operations/listembeddingsmodels.py index 016f0b9b..82245195 100644 --- a/src/openrouter/operations/listembeddingsmodels.py +++ b/src/openrouter/operations/listembeddingsmodels.py @@ -2,7 +2,7 @@ from __future__ import annotations from openrouter.components import modelslistresponse as components_modelslistresponse -from openrouter.types import BaseModel, UNSET_SENTINEL +from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET_SENTINEL from openrouter.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata import pydantic from pydantic import model_serializer @@ -88,7 +88,7 @@ class ListEmbeddingsModelsRequestTypedDict(TypedDict): r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings. """ - offset: NotRequired[int] + offset: NotRequired[Nullable[int]] r"""Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned""" limit: NotRequired[int] r"""Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned""" @@ -124,7 +124,7 @@ class ListEmbeddingsModelsRequest(BaseModel): """ offset: Annotated[ - Optional[int], + OptionalNullable[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 0 r"""Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned""" @@ -146,15 +146,24 @@ def serialize_model(self, handler): "limit", ] ) + nullable_fields = set(["offset"]) 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) if val != UNSET_SENTINEL: - if val is not None or k not in optional_fields: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): m[k] = val return m diff --git a/src/openrouter/operations/listguardrailkeyassignments.py b/src/openrouter/operations/listguardrailkeyassignments.py index 90f26722..c8a31fcb 100644 --- a/src/openrouter/operations/listguardrailkeyassignments.py +++ b/src/openrouter/operations/listguardrailkeyassignments.py @@ -4,7 +4,7 @@ from openrouter.components import ( listkeyassignmentsresponse as components_listkeyassignmentsresponse, ) -from openrouter.types import BaseModel, UNSET_SENTINEL +from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET_SENTINEL from openrouter.utils import ( FieldMetadata, HeaderMetadata, @@ -97,7 +97,7 @@ class ListGuardrailKeyAssignmentsRequestTypedDict(TypedDict): r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings. """ - offset: NotRequired[int] + offset: NotRequired[Nullable[int]] r"""Number of records to skip for pagination""" limit: NotRequired[int] r"""Maximum number of records to return (max 100)""" @@ -138,7 +138,7 @@ class ListGuardrailKeyAssignmentsRequest(BaseModel): """ offset: Annotated[ - Optional[int], + OptionalNullable[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 0 r"""Number of records to skip for pagination""" @@ -160,15 +160,24 @@ def serialize_model(self, handler): "limit", ] ) + nullable_fields = set(["offset"]) 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) if val != UNSET_SENTINEL: - if val is not None or k not in optional_fields: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): m[k] = val return m diff --git a/src/openrouter/operations/listguardrailmemberassignments.py b/src/openrouter/operations/listguardrailmemberassignments.py index 4ff57806..49357f10 100644 --- a/src/openrouter/operations/listguardrailmemberassignments.py +++ b/src/openrouter/operations/listguardrailmemberassignments.py @@ -4,7 +4,7 @@ from openrouter.components import ( listmemberassignmentsresponse as components_listmemberassignmentsresponse, ) -from openrouter.types import BaseModel, UNSET_SENTINEL +from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET_SENTINEL from openrouter.utils import ( FieldMetadata, HeaderMetadata, @@ -97,7 +97,7 @@ class ListGuardrailMemberAssignmentsRequestTypedDict(TypedDict): r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings. """ - offset: NotRequired[int] + offset: NotRequired[Nullable[int]] r"""Number of records to skip for pagination""" limit: NotRequired[int] r"""Maximum number of records to return (max 100)""" @@ -138,7 +138,7 @@ class ListGuardrailMemberAssignmentsRequest(BaseModel): """ offset: Annotated[ - Optional[int], + OptionalNullable[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 0 r"""Number of records to skip for pagination""" @@ -160,15 +160,24 @@ def serialize_model(self, handler): "limit", ] ) + nullable_fields = set(["offset"]) 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) if val != UNSET_SENTINEL: - if val is not None or k not in optional_fields: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): m[k] = val return m diff --git a/src/openrouter/operations/listguardrails.py b/src/openrouter/operations/listguardrails.py index 1e36035b..c7d05cc9 100644 --- a/src/openrouter/operations/listguardrails.py +++ b/src/openrouter/operations/listguardrails.py @@ -4,7 +4,7 @@ from openrouter.components import ( listguardrailsresponse as components_listguardrailsresponse, ) -from openrouter.types import BaseModel, UNSET_SENTINEL +from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET_SENTINEL from openrouter.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata import pydantic from pydantic import model_serializer @@ -90,7 +90,7 @@ class ListGuardrailsRequestTypedDict(TypedDict): r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings. """ - offset: NotRequired[int] + offset: NotRequired[Nullable[int]] r"""Number of records to skip for pagination""" limit: NotRequired[int] r"""Maximum number of records to return (max 100)""" @@ -128,7 +128,7 @@ class ListGuardrailsRequest(BaseModel): """ offset: Annotated[ - Optional[int], + OptionalNullable[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 0 r"""Number of records to skip for pagination""" @@ -157,15 +157,24 @@ def serialize_model(self, handler): "workspace_id", ] ) + nullable_fields = set(["offset"]) 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) if val != UNSET_SENTINEL: - if val is not None or k not in optional_fields: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): m[k] = val return m diff --git a/src/openrouter/operations/listkeyassignments.py b/src/openrouter/operations/listkeyassignments.py index f9ccb3da..25352cf3 100644 --- a/src/openrouter/operations/listkeyassignments.py +++ b/src/openrouter/operations/listkeyassignments.py @@ -4,7 +4,7 @@ from openrouter.components import ( listkeyassignmentsresponse as components_listkeyassignmentsresponse, ) -from openrouter.types import BaseModel, UNSET_SENTINEL +from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET_SENTINEL from openrouter.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata import pydantic from pydantic import model_serializer @@ -90,7 +90,7 @@ class ListKeyAssignmentsRequestTypedDict(TypedDict): r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings. """ - offset: NotRequired[int] + offset: NotRequired[Nullable[int]] r"""Number of records to skip for pagination""" limit: NotRequired[int] r"""Maximum number of records to return (max 100)""" @@ -126,7 +126,7 @@ class ListKeyAssignmentsRequest(BaseModel): """ offset: Annotated[ - Optional[int], + OptionalNullable[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 0 r"""Number of records to skip for pagination""" @@ -148,15 +148,24 @@ def serialize_model(self, handler): "limit", ] ) + nullable_fields = set(["offset"]) 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) if val != UNSET_SENTINEL: - if val is not None or k not in optional_fields: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): m[k] = val return m diff --git a/src/openrouter/operations/listmemberassignments.py b/src/openrouter/operations/listmemberassignments.py index 60c04bea..4ccc06b5 100644 --- a/src/openrouter/operations/listmemberassignments.py +++ b/src/openrouter/operations/listmemberassignments.py @@ -4,7 +4,7 @@ from openrouter.components import ( listmemberassignmentsresponse as components_listmemberassignmentsresponse, ) -from openrouter.types import BaseModel, UNSET_SENTINEL +from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET_SENTINEL from openrouter.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata import pydantic from pydantic import model_serializer @@ -90,7 +90,7 @@ class ListMemberAssignmentsRequestTypedDict(TypedDict): r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings. """ - offset: NotRequired[int] + offset: NotRequired[Nullable[int]] r"""Number of records to skip for pagination""" limit: NotRequired[int] r"""Maximum number of records to return (max 100)""" @@ -126,7 +126,7 @@ class ListMemberAssignmentsRequest(BaseModel): """ offset: Annotated[ - Optional[int], + OptionalNullable[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 0 r"""Number of records to skip for pagination""" @@ -148,15 +148,24 @@ def serialize_model(self, handler): "limit", ] ) + nullable_fields = set(["offset"]) 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) if val != UNSET_SENTINEL: - if val is not None or k not in optional_fields: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): m[k] = val return m diff --git a/src/openrouter/operations/listmodelsuser.py b/src/openrouter/operations/listmodelsuser.py index d2a24e43..8a540289 100644 --- a/src/openrouter/operations/listmodelsuser.py +++ b/src/openrouter/operations/listmodelsuser.py @@ -2,7 +2,7 @@ from __future__ import annotations from openrouter.components import modelslistresponse as components_modelslistresponse -from openrouter.types import BaseModel, UNSET_SENTINEL +from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET_SENTINEL from openrouter.utils import ( FieldMetadata, HeaderMetadata, @@ -111,7 +111,7 @@ class ListModelsUserRequestTypedDict(TypedDict): r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings. """ - offset: NotRequired[int] + offset: NotRequired[Nullable[int]] r"""Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned""" limit: NotRequired[int] r"""Maximum number of records to return (max 1000). When both offset and limit are omitted, the full list is returned""" @@ -147,7 +147,7 @@ class ListModelsUserRequest(BaseModel): """ offset: Annotated[ - Optional[int], + OptionalNullable[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 0 r"""Number of records to skip for pagination. When both offset and limit are omitted, the full list is returned""" @@ -169,15 +169,24 @@ def serialize_model(self, handler): "limit", ] ) + nullable_fields = set(["offset"]) 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) if val != UNSET_SENTINEL: - if val is not None or k not in optional_fields: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): m[k] = val return m diff --git a/src/openrouter/operations/listobservabilitydestinations.py b/src/openrouter/operations/listobservabilitydestinations.py index 818784f8..6912194b 100644 --- a/src/openrouter/operations/listobservabilitydestinations.py +++ b/src/openrouter/operations/listobservabilitydestinations.py @@ -4,7 +4,7 @@ from openrouter.components import ( listobservabilitydestinationsresponse as components_listobservabilitydestinationsresponse, ) -from openrouter.types import BaseModel, UNSET_SENTINEL +from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET_SENTINEL from openrouter.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata import pydantic from pydantic import model_serializer @@ -90,7 +90,7 @@ class ListObservabilityDestinationsRequestTypedDict(TypedDict): r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings. """ - offset: NotRequired[int] + offset: NotRequired[Nullable[int]] r"""Number of records to skip for pagination""" limit: NotRequired[int] r"""Maximum number of records to return (max 100)""" @@ -128,7 +128,7 @@ class ListObservabilityDestinationsRequest(BaseModel): """ offset: Annotated[ - Optional[int], + OptionalNullable[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 0 r"""Number of records to skip for pagination""" @@ -157,15 +157,24 @@ def serialize_model(self, handler): "workspace_id", ] ) + nullable_fields = set(["offset"]) 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) if val != UNSET_SENTINEL: - if val is not None or k not in optional_fields: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): m[k] = val return m diff --git a/src/openrouter/operations/listorganizationmembers.py b/src/openrouter/operations/listorganizationmembers.py index 06825eea..f8ab3cfb 100644 --- a/src/openrouter/operations/listorganizationmembers.py +++ b/src/openrouter/operations/listorganizationmembers.py @@ -1,7 +1,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from openrouter.types import BaseModel, Nullable, UNSET_SENTINEL, UnrecognizedStr +from openrouter.types import ( + BaseModel, + Nullable, + OptionalNullable, + UNSET_SENTINEL, + UnrecognizedStr, +) from openrouter.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata import pydantic from pydantic import model_serializer @@ -87,7 +93,7 @@ class ListOrganizationMembersRequestTypedDict(TypedDict): r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings. """ - offset: NotRequired[int] + offset: NotRequired[Nullable[int]] r"""Number of records to skip for pagination""" limit: NotRequired[int] r"""Maximum number of records to return (max 100)""" @@ -123,7 +129,7 @@ class ListOrganizationMembersRequest(BaseModel): """ offset: Annotated[ - Optional[int], + OptionalNullable[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 0 r"""Number of records to skip for pagination""" @@ -145,15 +151,24 @@ def serialize_model(self, handler): "limit", ] ) + nullable_fields = set(["offset"]) 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) if val != UNSET_SENTINEL: - if val is not None or k not in optional_fields: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): m[k] = val return m diff --git a/src/openrouter/operations/listpresets.py b/src/openrouter/operations/listpresets.py index 23c66e84..64002d1d 100644 --- a/src/openrouter/operations/listpresets.py +++ b/src/openrouter/operations/listpresets.py @@ -2,7 +2,7 @@ from __future__ import annotations from openrouter.components import listpresetsresponse as components_listpresetsresponse -from openrouter.types import BaseModel, UNSET_SENTINEL +from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET_SENTINEL from openrouter.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata import pydantic from pydantic import model_serializer @@ -88,7 +88,7 @@ class ListPresetsRequestTypedDict(TypedDict): r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings. """ - offset: NotRequired[int] + offset: NotRequired[Nullable[int]] r"""Number of records to skip for pagination""" limit: NotRequired[int] r"""Maximum number of records to return (max 100)""" @@ -124,7 +124,7 @@ class ListPresetsRequest(BaseModel): """ offset: Annotated[ - Optional[int], + OptionalNullable[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 0 r"""Number of records to skip for pagination""" @@ -146,15 +146,24 @@ def serialize_model(self, handler): "limit", ] ) + nullable_fields = set(["offset"]) 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) if val != UNSET_SENTINEL: - if val is not None or k not in optional_fields: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): m[k] = val return m diff --git a/src/openrouter/operations/listpresetversions.py b/src/openrouter/operations/listpresetversions.py index 1224fee0..22c7b85e 100644 --- a/src/openrouter/operations/listpresetversions.py +++ b/src/openrouter/operations/listpresetversions.py @@ -4,7 +4,7 @@ from openrouter.components import ( listpresetversionsresponse as components_listpresetversionsresponse, ) -from openrouter.types import BaseModel, UNSET_SENTINEL +from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET_SENTINEL from openrouter.utils import ( FieldMetadata, HeaderMetadata, @@ -97,7 +97,7 @@ class ListPresetVersionsRequestTypedDict(TypedDict): r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings. """ - offset: NotRequired[int] + offset: NotRequired[Nullable[int]] r"""Number of records to skip for pagination""" limit: NotRequired[int] r"""Maximum number of records to return (max 100)""" @@ -138,7 +138,7 @@ class ListPresetVersionsRequest(BaseModel): """ offset: Annotated[ - Optional[int], + OptionalNullable[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 0 r"""Number of records to skip for pagination""" @@ -160,15 +160,24 @@ def serialize_model(self, handler): "limit", ] ) + nullable_fields = set(["offset"]) 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) if val != UNSET_SENTINEL: - if val is not None or k not in optional_fields: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): m[k] = val return m diff --git a/src/openrouter/operations/listworkspacemembers.py b/src/openrouter/operations/listworkspacemembers.py index ff41be4a..250b6442 100644 --- a/src/openrouter/operations/listworkspacemembers.py +++ b/src/openrouter/operations/listworkspacemembers.py @@ -4,7 +4,7 @@ from openrouter.components import ( listworkspacemembersresponse as components_listworkspacemembersresponse, ) -from openrouter.types import BaseModel, UNSET_SENTINEL +from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET_SENTINEL from openrouter.utils import ( FieldMetadata, HeaderMetadata, @@ -97,7 +97,7 @@ class ListWorkspaceMembersRequestTypedDict(TypedDict): r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings. """ - offset: NotRequired[int] + offset: NotRequired[Nullable[int]] r"""Number of records to skip for pagination""" limit: NotRequired[int] r"""Maximum number of records to return (max 100)""" @@ -138,7 +138,7 @@ class ListWorkspaceMembersRequest(BaseModel): """ offset: Annotated[ - Optional[int], + OptionalNullable[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 0 r"""Number of records to skip for pagination""" @@ -160,15 +160,24 @@ def serialize_model(self, handler): "limit", ] ) + nullable_fields = set(["offset"]) 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) if val != UNSET_SENTINEL: - if val is not None or k not in optional_fields: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): m[k] = val return m diff --git a/src/openrouter/operations/listworkspaces.py b/src/openrouter/operations/listworkspaces.py index 59f628e9..cbdad12f 100644 --- a/src/openrouter/operations/listworkspaces.py +++ b/src/openrouter/operations/listworkspaces.py @@ -4,7 +4,7 @@ from openrouter.components import ( listworkspacesresponse as components_listworkspacesresponse, ) -from openrouter.types import BaseModel, UNSET_SENTINEL +from openrouter.types import BaseModel, Nullable, OptionalNullable, UNSET_SENTINEL from openrouter.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata import pydantic from pydantic import model_serializer @@ -90,7 +90,7 @@ class ListWorkspacesRequestTypedDict(TypedDict): r"""Comma-separated list of app categories (e.g. \"cli-agent,cloud-agent\"). Used for marketplace rankings. """ - offset: NotRequired[int] + offset: NotRequired[Nullable[int]] r"""Number of records to skip for pagination""" limit: NotRequired[int] r"""Maximum number of records to return (max 100)""" @@ -126,7 +126,7 @@ class ListWorkspacesRequest(BaseModel): """ offset: Annotated[ - Optional[int], + OptionalNullable[int], FieldMetadata(query=QueryParamMetadata(style="form", explode=True)), ] = 0 r"""Number of records to skip for pagination""" @@ -148,15 +148,24 @@ def serialize_model(self, handler): "limit", ] ) + nullable_fields = set(["offset"]) 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)) + is_nullable_and_explicitly_set = ( + k in nullable_fields + and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member + ) if val != UNSET_SENTINEL: - if val is not None or k not in optional_fields: + if ( + val is not None + or k not in optional_fields + or is_nullable_and_explicitly_set + ): m[k] = val return m diff --git a/src/openrouter/organization.py b/src/openrouter/organization.py index 31c74edd..6e0305fa 100644 --- a/src/openrouter/organization.py +++ b/src/openrouter/organization.py @@ -19,7 +19,7 @@ def list_members( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -182,7 +182,7 @@ async def list_members_async( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, diff --git a/src/openrouter/presets.py b/src/openrouter/presets.py index 06d3ee11..a5ee9b47 100644 --- a/src/openrouter/presets.py +++ b/src/openrouter/presets.py @@ -19,7 +19,7 @@ def list( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -185,7 +185,7 @@ async def list_async( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -2017,7 +2017,7 @@ def create_presets_responses( ] ] = None, presence_penalty: OptionalNullable[float] = UNSET, - previous_response_id: OptionalNullable[Any] = UNSET, + previous_response_id: Optional[Any] = None, prompt: OptionalNullable[ Union[ components.StoredPromptTemplate, @@ -2369,7 +2369,7 @@ async def create_presets_responses_async( ] ] = None, presence_penalty: OptionalNullable[float] = UNSET, - previous_response_id: OptionalNullable[Any] = UNSET, + previous_response_id: Optional[Any] = None, prompt: OptionalNullable[ Union[ components.StoredPromptTemplate, @@ -2685,7 +2685,7 @@ def list_versions( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -2860,7 +2860,7 @@ async def list_versions_async( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, diff --git a/src/openrouter/responses.py b/src/openrouter/responses.py index 4362352d..466c6130 100644 --- a/src/openrouter/responses.py +++ b/src/openrouter/responses.py @@ -66,7 +66,7 @@ def send( ] ] = None, presence_penalty: OptionalNullable[float] = UNSET, - previous_response_id: OptionalNullable[Any] = UNSET, + previous_response_id: Optional[Any] = None, prompt: OptionalNullable[ Union[ components.StoredPromptTemplate, @@ -224,7 +224,7 @@ def send( ] ] = None, presence_penalty: OptionalNullable[float] = UNSET, - previous_response_id: OptionalNullable[Any] = UNSET, + previous_response_id: Optional[Any] = None, prompt: OptionalNullable[ Union[ components.StoredPromptTemplate, @@ -382,7 +382,7 @@ def send( ] ] = None, presence_penalty: OptionalNullable[float] = UNSET, - previous_response_id: OptionalNullable[Any] = UNSET, + previous_response_id: Optional[Any] = None, prompt: OptionalNullable[ Union[ components.StoredPromptTemplate, @@ -542,7 +542,7 @@ def send( ] ] = None, presence_penalty: OptionalNullable[float] = UNSET, - previous_response_id: OptionalNullable[Any] = UNSET, + previous_response_id: Optional[Any] = None, prompt: OptionalNullable[ Union[ components.StoredPromptTemplate, @@ -985,7 +985,7 @@ async def send_async( ] ] = None, presence_penalty: OptionalNullable[float] = UNSET, - previous_response_id: OptionalNullable[Any] = UNSET, + previous_response_id: Optional[Any] = None, prompt: OptionalNullable[ Union[ components.StoredPromptTemplate, @@ -1143,7 +1143,7 @@ async def send_async( ] ] = None, presence_penalty: OptionalNullable[float] = UNSET, - previous_response_id: OptionalNullable[Any] = UNSET, + previous_response_id: Optional[Any] = None, prompt: OptionalNullable[ Union[ components.StoredPromptTemplate, @@ -1301,7 +1301,7 @@ async def send_async( ] ] = None, presence_penalty: OptionalNullable[float] = UNSET, - previous_response_id: OptionalNullable[Any] = UNSET, + previous_response_id: Optional[Any] = None, prompt: OptionalNullable[ Union[ components.StoredPromptTemplate, @@ -1461,7 +1461,7 @@ async def send_async( ] ] = None, presence_penalty: OptionalNullable[float] = UNSET, - previous_response_id: OptionalNullable[Any] = UNSET, + previous_response_id: Optional[Any] = None, prompt: OptionalNullable[ Union[ components.StoredPromptTemplate, diff --git a/src/openrouter/workspaces.py b/src/openrouter/workspaces.py index 0e31f050..e36ad249 100644 --- a/src/openrouter/workspaces.py +++ b/src/openrouter/workspaces.py @@ -19,7 +19,7 @@ def list( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -177,7 +177,7 @@ async def list_async( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -2409,7 +2409,7 @@ def list_members( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, @@ -2581,7 +2581,7 @@ async def list_members_async( http_referer: Optional[str] = None, x_open_router_title: Optional[str] = None, x_open_router_categories: Optional[str] = None, - offset: Optional[int] = 0, + offset: OptionalNullable[int] = 0, limit: Optional[int] = 50, retries: OptionalNullable[utils.RetryConfig] = UNSET, server_url: Optional[str] = None, diff --git a/uv.lock b/uv.lock index 88f13906..fe24f6ea 100644 --- a/uv.lock +++ b/uv.lock @@ -213,7 +213,7 @@ wheels = [ [[package]] name = "openrouter" -version = "0.11.38" +version = "0.11.39" source = { editable = "." } dependencies = [ { name = "httpcore" }, From 2d89a607d5afc9b63694de064a0c9544a2666ed8 Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Thu, 16 Jul 2026 19:42:15 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow