> ## Documentation Index > Fetch the complete documentation index at: https://openrouter.ai/docs/llms.txt > Use this file to discover all available pages before exploring further. # Submit a System One request > Sends state and typed questions to a System One model such as Jev and returns its answers. Compatible with the TypeSafe SDKs. Bare System One model IDs such as `jev-1.13` and `jev-latest` are mapped onto the `typesafe/` namespace. ## OpenAPI ````yaml /openapi/openapi.yaml post /systemone openapi: 3.1.0 info: contact: 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 servers: - description: Production server url: https://openrouter.ai/api/v1 x-speakeasy-server-id: production security: - apiKey: [] 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: >- Submit, list, poll, and delete asynchronous batches of inference requests. See https://openrouter.ai/docs/batch-quickstart. name: Batch - description: Benchmarks endpoints name: Benchmarks - description: Chat completion endpoints name: Chat - description: Task classification market-share endpoints name: Classifications - description: Containers endpoints name: Containers - description: Credit management endpoints name: Credits - description: >- Public OpenRouter usage datasets. Data returned by these endpoints is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/): reuse and republish it, including commercially, with attribution to OpenRouter. name: Datasets - description: Text embedding endpoints name: Embeddings - description: Endpoint information name: Endpoints - description: External Users endpoints name: External Users - description: Files endpoints name: Files - description: Generation history endpoints name: Generations - description: Guardrail Policies endpoints name: Guardrail Policies - 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: Private Endpoints endpoints name: Private Endpoints - description: Private Providers endpoints name: Private Providers - description: Provider information endpoints name: Providers - description: Rerank endpoints name: Rerank - description: OpenAI-compatible Responses API endpoints name: Responses - description: >- Management endpoints for SCIM group-to-workspace mappings, authenticated with a management key. These are not the SCIM 2.0 connector endpoints for your identity provider. In your identity provider, enter the SCIM endpoint URL shown when you enable provisioning under Settings > Members > SCIM Mappings. See https://openrouter.ai/docs/guides/features/scim-mappings#set-up-provisioning. name: SCIM - description: Speech-to-text endpoints name: STT x-displayName: Transcriptions - description: >- System One endpoints for models such as Jev, compatible with the TypeSafe SDKs. See https://openrouter.ai/docs/guides/community/typesafe-sdk. name: SystemOne x-displayName: System One - description: Text-to-speech endpoints name: TTS x-displayName: Speech - description: >- The catalog of server tools OpenRouter runs on behalf of a model: accepted `tools[].type` spellings per API format, engines and pricing, and which endpoints run each tool natively. See https://openrouter.ai/docs/guides/features/server-tools. name: Tools - description: >- Store host-bound secrets for a workspace or for one intern. Scope is selected by the API key. Responses return metadata only, never secret values. See https://openrouter.ai/docs/guides/ori/vault. name: Vault - description: Video Generation endpoints name: Video Generation - description: Workspaces endpoints name: Workspaces - description: Alpha feature endpoints for Decisions requests name: alpha.decisions - description: Alpha feature endpoints for Extractions requests name: alpha.extractions externalDocs: description: OpenRouter Documentation url: https://openrouter.ai/docs paths: /systemone: post: tags: - SystemOne summary: Submit a System One request description: >- Sends state and typed questions to a System One model such as Jev and returns its answers. Compatible with the TypeSafe SDKs. Bare System One model IDs such as `jev-1.13` and `jev-latest` are mapped onto the `typesafe/` namespace. operationId: createSystemone requestBody: content: application/json: example: model: typesafe/jev-1.13 questions: is_bug: criteria: 'false': The customer is asking a question or requesting a feature. 'true': >- The customer describes broken or unexpected product behavior. instructions: Is the customer reporting a software defect? type: noul team: criteria: account: Login, permissions, or profile issues. frontend: Rendering, layout, or browser compatibility issues. payments: Checkout, billing, or payment processing issues. instructions: Which team should own this ticket? type: choice urgency: criteria: - Can wait for the next release - Should be fixed this week - Blocking revenue right now instructions: How urgent is this ticket? type: score state: customer_tier: enterprise ticket: >- My checkout page shows a blank screen after I click Pay. I have tried two browsers. schema: $ref: '#/components/schemas/DecisionsRequest' required: true responses: '200': content: application/json: example: answers: is_bug: noul: 0.96 type: noul team: choice: payments confidence: 0.75 probabilities: account: 0 frontend: 0.16 payments: 0.84 type: choice urgency: confidence: 0.99 legend: '0': Can wait for the next release '1': Should be fixed this week '2': Blocking revenue right now probabilities: '0': 0 '1': 0.01 '2': 0.99 score: 1.99 type: score id: gen-dec-1789738314-X5e5eKGQdvR9rblyX250 model: typesafe/jev-1.13-20260917 provider: TypeSafe usage: cost: 0.000019992 input_tokens: 476 output_tokens: 70 schema: $ref: '#/components/schemas/DecisionsResponse' description: Decisions response '400': content: application/json: example: error: code: 400 message: Invalid request parameters schema: $ref: '#/components/schemas/BadRequestResponse' description: Bad Request - Invalid request parameters or malformed input '401': content: application/json: example: error: code: 401 message: Missing Authentication header schema: $ref: '#/components/schemas/UnauthorizedResponse' description: Unauthorized - Authentication required or invalid credentials '402': content: application/json: example: error: code: 402 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 '403': content: application/json: example: error: code: 403 message: Only management keys can perform this operation schema: $ref: '#/components/schemas/ForbiddenResponse' description: Forbidden - Authentication successful but insufficient permissions '404': content: application/json: example: error: code: 404 message: Resource not found schema: $ref: '#/components/schemas/NotFoundResponse' description: Not Found - Resource does not exist '413': content: application/json: example: error: code: 413 message: Request payload too large schema: $ref: '#/components/schemas/PayloadTooLargeResponse' description: Payload Too Large - Request payload exceeds size limits '429': content: application/json: example: error: code: 429 message: Rate limit exceeded schema: $ref: '#/components/schemas/TooManyRequestsResponse' description: Too Many Requests - Rate limit exceeded '500': content: application/json: example: error: code: 500 message: Internal Server Error schema: $ref: '#/components/schemas/InternalServerResponse' description: Internal Server Error - Unexpected server error '502': content: application/json: example: error: code: 502 message: Provider returned error schema: $ref: '#/components/schemas/BadGatewayResponse' description: Bad Gateway - Provider/upstream API failure '503': content: application/json: example: error: code: 503 message: Service temporarily unavailable schema: $ref: '#/components/schemas/ServiceUnavailableResponse' description: Service Unavailable - Service temporarily unavailable '524': content: application/json: example: error: code: 524 message: Request timed out. Please try again later. schema: $ref: '#/components/schemas/EdgeNetworkTimeoutResponse' description: Infrastructure Timeout - Provider request timed out at edge network '529': content: application/json: example: error: code: 529 message: Provider returned error schema: $ref: '#/components/schemas/ProviderOverloadedResponse' description: Provider Overloaded - Provider is temporarily overloaded components: schemas: DecisionsRequest: properties: assets: additionalProperties: $ref: '#/components/schemas/DecisionsImageAsset' description: >- Images keyed by reference string, as in TypeSafe's API. Write a reference wherever the image belongs in `state`, `instructions`, or `criteria`; every asset must be referenced at least once, or the request fails with `400` naming the unused key. TypeSafe Jev endpoints receive `assets` as written and read a reference as a whole string value or inside longer text. Every other provider has each whole-string reference resolved to an `image_url` part before the request is sent, so it is accepted only where that provider reads `image_url` parts (top-level `state` items), and a reference inside longer text fails with `400`. `image_url` parts and `assets` can be mixed in one request. type: object model: type: string provider: allOf: - $ref: '#/components/schemas/ProviderPreferences' - description: Provider routing preferences for the request. questions: additionalProperties: description: >- A Decisions question using a boolean, choice, ordered score, or image bounding-box evaluation. discriminator: mapping: box: '#/components/schemas/DecisionsBoxQuestion' choice: '#/components/schemas/DecisionsChoiceQuestion' noul: '#/components/schemas/DecisionsNoulQuestion' score: '#/components/schemas/DecisionsScoreQuestion' propertyName: type oneOf: - $ref: '#/components/schemas/DecisionsNoulQuestion' - $ref: '#/components/schemas/DecisionsChoiceQuestion' - $ref: '#/components/schemas/DecisionsScoreQuestion' - $ref: '#/components/schemas/DecisionsBoxQuestion' type: object session_id: description: >- A unique identifier for grouping related requests (e.g., a conversation or agent workflow). Used for observability grouping in Broadcast and private logging; never sent to the provider. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters. example: session-1234 maxLength: 256 type: string state: anyOf: - type: string - additionalProperties: {} type: object - items: {} type: array description: >- The content to evaluate: a plain string, or a JSON object or array of related context. trace: $ref: '#/components/schemas/TraceConfig' user: maxLength: 256 type: string required: - model - state - questions type: object DecisionsResponse: properties: annotations: description: >- Sources for the request as a whole, when the provider returns them. Not attributed to individual answers. items: $ref: '#/components/schemas/DecisionsUrlCitationAnnotation' type: array answers: additionalProperties: description: >- A Decisions answer using a boolean, choice, score, or image bounding-box evaluation, or a refusal of that question. discriminator: mapping: box: '#/components/schemas/DecisionsBoxAnswer' choice: '#/components/schemas/DecisionsChoiceAnswer' noul: '#/components/schemas/DecisionsNoulAnswer' refusal: '#/components/schemas/DecisionsRefusalAnswer' score: '#/components/schemas/DecisionsScoreAnswer' propertyName: type oneOf: - $ref: '#/components/schemas/DecisionsNoulAnswer' - $ref: '#/components/schemas/DecisionsChoiceAnswer' - $ref: '#/components/schemas/DecisionsScoreAnswer' - $ref: '#/components/schemas/DecisionsBoxAnswer' - $ref: '#/components/schemas/DecisionsRefusalAnswer' type: object id: type: string model: type: string provider: type: string usage: properties: cost: description: >- What OpenRouter charges for the request, in credits. On a BYOK request this is the OpenRouter fee only. format: double type: number cost_details: $ref: '#/components/schemas/CostDetails' input_tokens: type: integer input_tokens_details: $ref: '#/components/schemas/DecisionsUsageInputTokensDetails' is_byok: description: >- Whether a request was made using a Bring Your Own Key configuration type: boolean output_tokens: type: integer required: - input_tokens - output_tokens type: object required: - model - answers - usage type: object BadRequestResponse: description: Bad Request - Invalid request parameters or malformed input example: error: code: 400 message: Invalid request parameters properties: error: $ref: '#/components/schemas/BadRequestResponseErrorData' openrouter_metadata: additionalProperties: {} type: - object - 'null' user_id: type: - string - 'null' required: - error type: object UnauthorizedResponse: description: Unauthorized - Authentication required or invalid credentials example: error: code: 401 message: Missing Authentication header properties: error: $ref: '#/components/schemas/UnauthorizedResponseErrorData' openrouter_metadata: additionalProperties: {} type: - object - 'null' user_id: type: - string - 'null' required: - error type: object PaymentRequiredResponse: description: Payment Required - Insufficient credits or quota to complete request example: error: code: 402 message: Insufficient credits. Add more using https://openrouter.ai/credits properties: error: $ref: '#/components/schemas/PaymentRequiredResponseErrorData' openrouter_metadata: additionalProperties: {} type: - object - 'null' user_id: type: - string - 'null' required: - error type: object ForbiddenResponse: description: Forbidden - Authentication successful but insufficient permissions example: error: code: 403 message: Only management keys can perform this operation properties: error: $ref: '#/components/schemas/ForbiddenResponseErrorData' openrouter_metadata: additionalProperties: {} type: - object - 'null' user_id: type: - string - 'null' required: - error type: object NotFoundResponse: description: Not Found - Resource does not exist example: error: code: 404 message: Resource not found properties: error: $ref: '#/components/schemas/NotFoundResponseErrorData' openrouter_metadata: additionalProperties: {} type: - object - 'null' user_id: type: - string - 'null' required: - error type: object PayloadTooLargeResponse: description: Payload Too Large - Request payload exceeds size limits example: error: code: 413 message: Request payload too large properties: error: $ref: '#/components/schemas/PayloadTooLargeResponseErrorData' openrouter_metadata: additionalProperties: {} type: - object - 'null' user_id: type: - string - 'null' required: - error type: object TooManyRequestsResponse: description: Too Many Requests - Rate limit exceeded example: error: code: 429 message: Rate limit exceeded properties: error: $ref: '#/components/schemas/TooManyRequestsResponseErrorData' openrouter_metadata: additionalProperties: {} type: - object - 'null' user_id: type: - string - 'null' required: - error type: object InternalServerResponse: description: Internal Server Error - Unexpected server error example: error: code: 500 message: Internal Server Error properties: error: $ref: '#/components/schemas/InternalServerResponseErrorData' openrouter_metadata: additionalProperties: {} type: - object - 'null' user_id: type: - string - 'null' required: - error type: object BadGatewayResponse: description: Bad Gateway - Provider/upstream API failure example: error: code: 502 message: Provider returned error properties: error: $ref: '#/components/schemas/BadGatewayResponseErrorData' openrouter_metadata: additionalProperties: {} type: - object - 'null' user_id: type: - string - 'null' required: - error type: object ServiceUnavailableResponse: description: Service Unavailable - Service temporarily unavailable example: error: code: 503 message: Service temporarily unavailable properties: error: $ref: '#/components/schemas/ServiceUnavailableResponseErrorData' openrouter_metadata: additionalProperties: {} type: - object - 'null' user_id: type: - string - 'null' required: - error type: object EdgeNetworkTimeoutResponse: description: Infrastructure Timeout - Provider request timed out at edge network example: error: code: 524 message: Request timed out. Please try again later. properties: error: $ref: '#/components/schemas/EdgeNetworkTimeoutResponseErrorData' openrouter_metadata: additionalProperties: {} type: - object - 'null' user_id: type: - string - 'null' required: - error type: object ProviderOverloadedResponse: description: Provider Overloaded - Provider is temporarily overloaded example: error: code: 529 message: Provider returned error properties: error: $ref: '#/components/schemas/ProviderOverloadedResponseErrorData' openrouter_metadata: additionalProperties: {} type: - object - 'null' user_id: type: - string - 'null' required: - error type: object DecisionsImageAsset: additionalProperties: false description: >- An image sent once and referenced by its key in the `assets` map. `data_base64` is the PNG or JPEG file in standard base64 with no `data:` prefix. The multipart `part` field of TypeSafe's API is not accepted. properties: data_base64: minLength: 1 pattern: ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$ type: string format: enum: - png - jpg - jpeg type: string type: enum: - image type: string required: - format - data_base64 type: object ProviderPreferences: additionalProperties: false description: >- When multiple model providers are available, optionally indicate your routing preference. example: allow_fallbacks: 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. 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 - null example: allow type: - string - 'null' 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. example: true 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. example: - openai - anthropic items: anyOf: - $ref: '#/components/schemas/ProviderName' - 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. properties: audio: description: Maximum price in USD per audio unit type: string completion: description: Maximum price in USD per million completion tokens type: string image: description: Maximum price in USD per image type: string prompt: description: Maximum price in USD per million prompt tokens type: string request: 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. example: - openai - anthropic items: anyOf: - $ref: '#/components/schemas/ProviderName' - type: string type: - array - 'null' options: $ref: '#/components/schemas/ProviderOptions' 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. example: - openai - anthropic items: anyOf: - $ref: '#/components/schemas/ProviderName' - 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. items: $ref: '#/components/schemas/Quantization' 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. type: - boolean - 'null' sort: anyOf: - $ref: '#/components/schemas/ProviderSort' - $ref: '#/components/schemas/ProviderSortConfig' - 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. example: true type: - boolean - 'null' type: - object - 'null' DecisionsBoxQuestion: description: >- Finds one target in an image in `state` and answers with one bounding box (`top`, `bottom`, `left`, `right` as fractions of the image). Served by TypeSafe Jev endpoints only; every other provider rejects a box question with `400` before anything is sent upstream. properties: instructions: anyOf: - type: string - additionalProperties: {} type: object - items: {} type: array description: >- A description of the target to find, naming the image in `state` it is in; not a command, and no `criteria`. type: enum: - box type: string required: - type - instructions type: object DecisionsChoiceQuestion: properties: criteria: additionalProperties: anyOf: - type: string - additionalProperties: {} type: object - items: {} type: array - type: 'null' description: A plain string, or a JSON object or array of structured guidance. type: object instructions: anyOf: - type: string - additionalProperties: {} type: object - items: {} type: array - type: 'null' description: A plain string, or a JSON object or array of structured guidance. type: enum: - choice type: string required: - type - criteria type: object DecisionsNoulQuestion: properties: criteria: properties: 'false': anyOf: - type: string - additionalProperties: {} type: object - items: {} type: array - type: 'null' description: >- A plain string, or a JSON object or array of structured guidance. 'true': anyOf: - type: string - additionalProperties: {} type: object - items: {} type: array - type: 'null' description: >- A plain string, or a JSON object or array of structured guidance. type: object instructions: anyOf: - type: string - additionalProperties: {} type: object - items: {} type: array - type: 'null' description: A plain string, or a JSON object or array of structured guidance. type: enum: - noul type: string required: - type type: object DecisionsScoreQuestion: properties: criteria: items: anyOf: - type: string - additionalProperties: {} type: object - items: {} type: array description: A plain string, or a JSON object or array of structured guidance. minItems: 1 type: array instructions: anyOf: - type: string - additionalProperties: {} type: object - items: {} type: array - type: 'null' description: A plain string, or a JSON object or array of structured guidance. type: enum: - score type: string required: - type - criteria type: object TraceConfig: 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 properties: generation_name: type: string parent_span_id: type: string span_name: type: string trace_id: type: string trace_name: type: string type: object DecisionsUrlCitationAnnotation: description: >- A web source the provider used for this request. Applies to the whole request, not to a specific answer. properties: type: enum: - url_citation type: string url_citation: properties: content: type: string title: type: string url: type: string required: - url type: object required: - type - url_citation type: object DecisionsBoxAnswer: properties: box: properties: bottom: format: double type: number left: format: double type: number right: format: double type: number top: format: double type: number required: - top - bottom - left - right type: object confidence: format: double type: number type: enum: - box type: string required: - type - box type: object DecisionsChoiceAnswer: properties: choice: type: string confidence: format: double type: number probabilities: additionalProperties: format: double type: number type: object type: enum: - choice type: string required: - type - choice type: object DecisionsNoulAnswer: properties: confidence: format: double type: number noul: format: double type: number type: enum: - noul type: string required: - type - noul type: object DecisionsRefusalAnswer: description: >- The provider declined to answer this question; no value or probabilities are returned. Other questions in the same request can still have answers. properties: type: enum: - refusal type: string required: - type type: object DecisionsScoreAnswer: properties: confidence: format: double type: number legend: additionalProperties: anyOf: - type: string - additionalProperties: {} type: object - items: {} type: array description: A plain string, or a JSON object or array of structured guidance. type: object probabilities: additionalProperties: format: double type: number type: object score: format: double type: number type: enum: - score type: string required: - type - score type: object CostDetails: description: Breakdown of upstream inference costs example: upstream_inference_completions_cost: 0.0004 upstream_inference_cost: null upstream_inference_prompt_cost: 0.0008 properties: server_tool_cost: description: >- Metered server-tool execution cost (for example, shell sandbox time) billed for this request, in USD. Matches the billed checkpoint and settlement amounts exactly. 0 when a metered server tool ran but settled at zero dollars; absent when no metered server tool ran. format: double type: - number - 'null' upstream_inference_completions_cost: format: double type: number upstream_inference_cost: format: double type: - number - 'null' upstream_inference_prompt_cost: format: double type: number required: - upstream_inference_prompt_cost - upstream_inference_completions_cost type: - object - 'null' DecisionsUsageInputTokensDetails: description: Of `input_tokens`, those the provider served from its prompt cache. properties: cached_tokens: type: integer required: - cached_tokens type: object BadRequestResponseErrorData: description: Error data for BadRequestResponse example: code: 400 message: Invalid request parameters properties: code: type: integer message: type: string metadata: additionalProperties: {} type: - object - 'null' required: - code - message type: object UnauthorizedResponseErrorData: description: Error data for UnauthorizedResponse example: code: 401 message: Missing Authentication header properties: code: type: integer message: type: string metadata: additionalProperties: {} type: - object - 'null' required: - code - message type: object PaymentRequiredResponseErrorData: description: Error data for PaymentRequiredResponse example: code: 402 message: Insufficient credits. Add more using https://openrouter.ai/credits properties: code: type: integer message: type: string metadata: additionalProperties: {} type: - object - 'null' required: - code - message type: object ForbiddenResponseErrorData: description: Error data for ForbiddenResponse example: code: 403 message: Only management keys can perform this operation properties: code: type: integer message: type: string metadata: additionalProperties: {} type: - object - 'null' required: - code - message type: object NotFoundResponseErrorData: description: Error data for NotFoundResponse example: code: 404 message: Resource not found properties: code: type: integer message: type: string metadata: additionalProperties: {} type: - object - 'null' required: - code - message type: object PayloadTooLargeResponseErrorData: description: Error data for PayloadTooLargeResponse example: code: 413 message: Request payload too large properties: code: type: integer message: type: string metadata: additionalProperties: {} type: - object - 'null' required: - code - message type: object TooManyRequestsResponseErrorData: description: Error data for TooManyRequestsResponse example: code: 429 message: Rate limit exceeded properties: code: type: integer message: type: string metadata: additionalProperties: {} type: - object - 'null' required: - code - message type: object InternalServerResponseErrorData: description: Error data for InternalServerResponse example: code: 500 message: Internal Server Error properties: code: type: integer message: type: string metadata: additionalProperties: {} type: - object - 'null' required: - code - message type: object BadGatewayResponseErrorData: description: Error data for BadGatewayResponse example: code: 502 message: Provider returned error properties: code: type: integer message: type: string metadata: additionalProperties: {} type: - object - 'null' required: - code - message type: object ServiceUnavailableResponseErrorData: description: Error data for ServiceUnavailableResponse example: code: 503 message: Service temporarily unavailable properties: code: type: integer message: type: string metadata: additionalProperties: {} type: - object - 'null' required: - code - message type: object EdgeNetworkTimeoutResponseErrorData: description: Error data for EdgeNetworkTimeoutResponse example: code: 524 message: Request timed out. Please try again later. properties: code: type: integer message: type: string metadata: additionalProperties: {} type: - object - 'null' required: - code - message type: object ProviderOverloadedResponseErrorData: description: Error data for ProviderOverloadedResponse example: code: 529 message: Provider returned error properties: code: type: integer message: type: string metadata: additionalProperties: {} type: - object - 'null' required: - code - message type: object ProviderName: enum: - Modal - AkashML - AI21 - AionLabs - Alibaba - Ambient - Ant Digital - Baidu - Amazon Bedrock - Amazon Nova - Anthropic - Arcee AI - AssemblyAI - AtlasCloud - Avian - Azure - BaseTen - BytePlus - Black Forest Labs - Cerebras - Chutes - Cirrascale - Claude Platform on AWS - Clarifai - Cloudflare - Cohere - CoreWeave - Cosine - Crucible - Crusoe - Darkbloom - Databricks - Decart - Deepgram - DeepInfra - DeepSeek - DekaLLM - DigitalOcean - ElevenLabs - Featherless - Fireworks - Fish Audio - Friendli - GMICloud - Google - Google AI Studio - Groq - HeyGen - Inception - Inceptron - InferenceNet - Ionstream - Infermatic - Io Net - Inferact vLLM - Inflection - KT - Liquid - Makora - Mara - Mancer 2 - Meta - Minimax - ModelRun - Mistral - Modular - Moonshot AI - Morph - VoyageAI by MongoDB - TypeSafe - Near AI - Nebius - Nex AGI - NextBit - Novita - Nvidia - Ollama - OpenAI - OpenInference - Parallel - Parasail - ParetoAlpha - Particle AI - Pearl Research - Poolside - PrimaLabs - PrimeIntellect - Perceptron - Perplexity - Phala - Recraft - Recursive - Reka - Relace - Respan - River - Sail Research - Sakana AI - SambaNova - ScaleDown - Seed - SiliconFlow - Sourceful - Speechify - StepFun - Stealth - StreamLake - Switchpoint - Tencent - Tenstorrent - Thinking Machines - Together - Unbiased - Upstage - Venice - Wafer - WandB - Quiver - Krea - Runway - Xiaomi - xAI - Z.AI - FakeProvider example: OpenAI type: string ProviderOptions: description: >- Provider-specific options keyed by provider slug. The provider segment is case-insensitive; an endpoint tag after `/` must match the endpoint slug exactly. 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: {} type: object ai21: additionalProperties: {} type: object aion-labs: additionalProperties: {} type: object akashml: additionalProperties: {} type: object alibaba: additionalProperties: {} type: object amazon-bedrock: additionalProperties: {} type: object amazon-bedrock/claude-on-aws: additionalProperties: {} type: object amazon-nova: additionalProperties: {} type: object ambient: additionalProperties: {} type: object antdigital: additionalProperties: {} type: object anthropic: additionalProperties: {} type: object anthropic/2: additionalProperties: {} type: object anyscale: additionalProperties: {} type: object arcee-ai: additionalProperties: {} type: object assemblyai: additionalProperties: {} type: object atlas-cloud: additionalProperties: {} type: object atoma: additionalProperties: {} type: object avian: additionalProperties: {} type: object azure: additionalProperties: {} type: object baidu: additionalProperties: {} type: object baseten: additionalProperties: {} type: object black-forest-labs: additionalProperties: {} type: object byteplus: additionalProperties: {} type: object centml: additionalProperties: {} type: object cerebras: additionalProperties: {} type: object chutes: additionalProperties: {} type: object cirrascale: additionalProperties: {} type: object clarifai: additionalProperties: {} type: object claude-on-aws: additionalProperties: {} type: object cloudflare: additionalProperties: {} type: object cohere: additionalProperties: {} type: object coreweave: additionalProperties: {} type: object cosine: additionalProperties: {} type: object crofai: additionalProperties: {} type: object crucible: additionalProperties: {} type: object crusoe: additionalProperties: {} type: object darkbloom: additionalProperties: {} type: object databricks: additionalProperties: {} type: object decart: additionalProperties: {} type: object deepgram: additionalProperties: {} type: object deepinfra: additionalProperties: {} type: object deepseek: additionalProperties: {} type: object dekallm: additionalProperties: {} type: object digitalocean: additionalProperties: {} type: object elevenlabs: additionalProperties: {} type: object enfer: additionalProperties: {} type: object fake-provider: additionalProperties: {} type: object featherless: additionalProperties: {} type: object fireworks: additionalProperties: {} type: object fish-audio: additionalProperties: {} type: object friendli: additionalProperties: {} type: object gmicloud: additionalProperties: {} type: object google-ai-studio: additionalProperties: {} type: object google-vertex: additionalProperties: {} type: object gopomelo: additionalProperties: {} type: object groq: additionalProperties: {} type: object heygen: additionalProperties: {} type: object huggingface: additionalProperties: {} type: object hyperbolic: additionalProperties: {} type: object hyperbolic-quantized: additionalProperties: {} type: object inception: additionalProperties: {} type: object inceptron: additionalProperties: {} type: object inferact-vllm: additionalProperties: {} type: object inference-net: additionalProperties: {} type: object infermatic: additionalProperties: {} type: object inflection: additionalProperties: {} type: object inocloud: additionalProperties: {} type: object io-net: additionalProperties: {} type: object ionstream: additionalProperties: {} type: object klusterai: additionalProperties: {} type: object krea: additionalProperties: {} type: object kt: additionalProperties: {} type: object lambda: additionalProperties: {} type: object lepton: additionalProperties: {} type: object liquid: additionalProperties: {} type: object lynn: additionalProperties: {} type: object lynn-private: additionalProperties: {} type: object makora: additionalProperties: {} type: object mancer: additionalProperties: {} type: object mancer-old: additionalProperties: {} type: object mara: additionalProperties: {} type: object meta: additionalProperties: {} type: object minimax: additionalProperties: {} type: object mistral: additionalProperties: {} type: object modal: additionalProperties: {} type: object modelrun: additionalProperties: {} type: object modular: additionalProperties: {} type: object moonshotai: additionalProperties: {} type: object morph: additionalProperties: {} type: object ncompass: additionalProperties: {} type: object near-ai: additionalProperties: {} type: object nebius: additionalProperties: {} type: object nex-agi: additionalProperties: {} type: object nextbit: additionalProperties: {} type: object nineteen: additionalProperties: {} type: object novita: additionalProperties: {} type: object nvidia: additionalProperties: {} type: object octoai: additionalProperties: {} type: object ollama: additionalProperties: {} type: object open-inference: additionalProperties: {} type: object openai: additionalProperties: {} type: object parallel: additionalProperties: {} type: object parasail: additionalProperties: {} type: object pareto-alpha: additionalProperties: {} type: object particle-ai: additionalProperties: {} type: object pearl-research: additionalProperties: {} type: object perceptron: additionalProperties: {} type: object perplexity: additionalProperties: {} type: object phala: additionalProperties: {} type: object poolside: additionalProperties: {} type: object primalabs: additionalProperties: {} type: object primeintellect: additionalProperties: {} type: object quiver: additionalProperties: {} type: object recraft: additionalProperties: {} type: object recursal: additionalProperties: {} type: object recursive: additionalProperties: {} type: object reflection: additionalProperties: {} type: object reka: additionalProperties: {} type: object relace: additionalProperties: {} type: object replicate: additionalProperties: {} type: object respan: additionalProperties: {} type: object river: additionalProperties: {} type: object runway: additionalProperties: {} type: object sail-research: additionalProperties: {} type: object sakana: additionalProperties: {} type: object sakana-ai: additionalProperties: {} type: object sambanova: additionalProperties: {} type: object sambanova-cloaked: additionalProperties: {} type: object scaledown: additionalProperties: {} type: object seed: additionalProperties: {} type: object sf-compute: additionalProperties: {} type: object siliconflow: additionalProperties: {} type: object sourceful: additionalProperties: {} type: object speechify: additionalProperties: {} type: object stealth: additionalProperties: {} type: object stepfun: additionalProperties: {} type: object streamlake: additionalProperties: {} type: object switchpoint: additionalProperties: {} type: object targon: additionalProperties: {} type: object tencent: additionalProperties: {} type: object tenstorrent: additionalProperties: {} type: object thinkingmachines: additionalProperties: {} type: object together: additionalProperties: {} type: object together-lite: additionalProperties: {} type: object typesafe: additionalProperties: {} type: object ubicloud: additionalProperties: {} type: object unbiased: additionalProperties: {} type: object upstage: additionalProperties: {} type: object venice: additionalProperties: {} type: object voyageai: additionalProperties: {} type: object wafer: additionalProperties: {} type: object wandb: additionalProperties: {} type: object wandb-legacy: additionalProperties: {} type: object xai: additionalProperties: {} type: object xiaomi: additionalProperties: {} type: object z-ai: additionalProperties: {} type: object type: object PreferredMaxLatency: anyOf: - format: double type: number - $ref: '#/components/schemas/PercentileLatencyCutoffs' - 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 - $ref: '#/components/schemas/PercentileThroughputCutoffs' - 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 Quantization: enum: - int4 - int8 - fp4 - mxfp4 - nvfp4 - fp6 - fp8 - mxfp8 - fp16 - bf16 - fp32 - unknown example: fp16 type: string ProviderSort: description: The provider sorting strategy (price, throughput, latency) enum: - price - throughput - latency - exacto example: price type: string ProviderSortConfig: description: The provider sorting strategy (price, throughput, latency) example: by: price partition: model properties: by: description: The provider sorting strategy (price, throughput, latency) enum: - price - throughput - latency - exacto - null example: price type: - string - 'null' 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. enum: - model - none - null example: model type: - string - 'null' type: object PercentileLatencyCutoffs: 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 type: - number - 'null' p75: description: Maximum p75 latency (seconds) format: double type: - number - 'null' p90: description: Maximum p90 latency (seconds) format: double type: - number - 'null' p99: description: Maximum p99 latency (seconds) format: double type: - number - 'null' type: object PercentileThroughputCutoffs: 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 type: - number - 'null' p75: description: Minimum p75 throughput (tokens/sec) format: double type: - number - 'null' p90: description: Minimum p90 throughput (tokens/sec) format: double type: - number - 'null' p99: description: Minimum p99 throughput (tokens/sec) format: double type: - number - 'null' type: object securitySchemes: apiKey: description: API key as bearer token in Authorization header scheme: bearer type: http ````