> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Models SDK Reference

> SDK reference for the Models API, available in Node.js and Python.

## Models

### Create a Model

Creates a new custom model for the workspace. Provider credentials in the configuration are encrypted using the workspace encryption key before being persisted.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import orq_ai_sdk
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      res = orq.models.create(configuration={

      }, display_name="Albert_Emmerich25", has_functions=False, id="<id>", input_cost=2127.52, metadata=orq_ai_sdk.ModelMetadata(
          is_private=False,
      ), model_developer="<value>", model_family="<value>", model_id="<id>", model_type="<value>", output_cost=5446, parameters=[
          {
              "config": {

              },
              "name": "<value>",
              "parameter": "<value>",
              "parameter_type": "<value>",
          },
      ], provider="<value>")

      # Handle response
      print(res)

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    const result = await orq.models.create({
      configuration: {

      },
      displayName: "Albert_Emmerich25",
      hasFunctions: false,
      id: "<id>",
      inputCost: 2127.52,
      metadata: {
        isPrivate: false,
      },
      modelDeveloper: "<value>",
      modelFamily: "<value>",
      modelId: "<id>",
      modelType: "<value>",
      outputCost: 5446,
      parameters: [
        {
          config: {

          },
          name: "<value>",
          parameter: "<value>",
          parameterType: "<value>",
        },
      ],
      provider: "<value>",
    });

    console.log(result);
  }

  run();
  ```
</CodeGroup>

<Expandable title="Parameters">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "configuration": Dict[str, Any],  # required
        "display_name": str,  # required
        "has_functions": bool,  # required
        "id": str,  # required
        "input_cost": float,  # required
        "metadata": {  # required
            "allowed_passthrough_parameters": List[str],
            "autorouter": {  # optional
                "economical_model": Optional[str],
                "id": Optional[str],
                "profile": Optional[str],
                "strong_model": Optional[str],
                "version": Optional[str],
            },
            "cached_image_input_cost": Optional[float],
            "cached_input_cost": Optional[float],
            "chain_of_thought": Optional[bool],
            "context_length": Optional[int],
            "context_window": Optional[int],
            "cost_efficiency_rating": Optional[int],
            "cost_per_image": Optional[float],
            "deprecation_date": Optional[str],
            "embedding_dimensions": Optional[int],
            "extended_context_pricing_mode": Optional[str],
            "extended_context_threshold": Optional[int],
            "generate_audio": Optional[bool],
            "image_input_cost": Optional[float],
            "image_output_cost": Optional[float],
            "image_token_cost": Optional[float],
            "intelligence_rating": Optional[int],
            "is_private": bool,  # required
            "is_realtime": Optional[bool],
            "knowledge_cutoff": Optional[str],
            "max_images_per_request": Optional[int],
            "max_input_tokens": Optional[int],
            "max_output_tokens": Optional[int],
            "million_searches_cost": Optional[float],
            "million_tokens_above_128k_cache_read_cost": Optional[float],
            "million_tokens_above_128k_cache_write_cost": Optional[float],
            "million_tokens_above_128k_input_cost": Optional[float],
            "million_tokens_above_128k_output_cost": Optional[float],
            "million_tokens_above_200k_cache_read_cost": Optional[float],
            "million_tokens_above_200k_cache_write_cost": Optional[float],
            "million_tokens_above_200k_input_cost": Optional[float],
            "million_tokens_above_200k_output_cost": Optional[float],
            "million_tokens_audio_input_cost": Optional[float],
            "million_tokens_audio_output_cost": Optional[float],
            "million_tokens_batches_input_cost": Optional[float],
            "million_tokens_batches_output_cost": Optional[float],
            "million_tokens_cache_read_cost": Optional[float],
            "million_tokens_cache_write_1h_cost": Optional[float],
            "million_tokens_cache_write_5m_cost": Optional[float],
            "million_tokens_cache_write_cost": Optional[float],
            "million_tokens_input_cost": Optional[float],
            "million_tokens_output_cost": Optional[float],
            "million_tokens_reasoning_cost": Optional[float],
            "multilingual": Optional[bool],
            "offline": Optional[bool],
            "per_video_second_cost": Optional[float],
            "per_video_second_cost_1080p": Optional[float],
            "pricing": {  # optional
                "cache_read": {  # optional
                    "cost": float,  # required
                    "currency": str,  # required
                    "per": int,  # required
                    "unit": str,  # required
                },
                "cache_write_1h": {  # optional
                    "cost": float,  # required
                    "currency": str,  # required
                    "per": int,  # required
                    "unit": str,  # required
                },
                "cache_write_5m": {  # optional
                    "cost": float,  # required
                    "currency": str,  # required
                    "per": int,  # required
                    "unit": str,  # required
                },
                "input": {  # optional
                    "cost": float,  # required
                    "currency": str,  # required
                    "per": int,  # required
                    "unit": str,  # required
                },
                "output": {  # optional
                    "cost": float,  # required
                    "currency": str,  # required
                    "per": int,  # required
                    "unit": str,  # required
                },
                "reasoning": {  # optional
                    "cost": float,  # required
                    "currency": str,  # required
                    "per": int,  # required
                    "unit": str,  # required
                },
                "variants": {  # optional
                    "cache_read": {  # optional
                        "cost": float,  # required
                        "currency": str,  # required
                        "per": int,  # required
                        "unit": str,  # required
                    },
                    "cache_write_1h": {  # optional
                        "cost": float,  # required
                        "currency": str,  # required
                        "per": int,  # required
                        "unit": str,  # required
                    },
                    "cache_write_5m": {  # optional
                        "cost": float,  # required
                        "currency": str,  # required
                        "per": int,  # required
                        "unit": str,  # required
                    },
                    "input": {  # optional
                        "cost": float,  # required
                        "currency": str,  # required
                        "per": int,  # required
                        "unit": str,  # required
                    },
                    "output": {  # optional
                        "cost": float,  # required
                        "currency": str,  # required
                        "per": int,  # required
                        "unit": str,  # required
                    },
                    "reasoning": {  # optional
                        "cost": float,  # required
                        "currency": str,  # required
                        "per": int,  # required
                        "unit": str,  # required
                    },
                    "when": str,  # required
                },
            },
            "reasoning_cost": Optional[float],
            "reasoning_tokens": Optional[int],
            "region": Optional[str],
            "speed_rating": Optional[int],
            "supported_video_aspect_ratios": List[str],
            "supported_video_durations": List[int],
            "supported_video_frame_images": List[str],
            "supported_video_resolutions": List[str],
            "supported_video_sizes": List[str],
            "supports_adaptive_reasoning": Optional[bool],
            "supports_audio_input": Optional[bool],
            "supports_audio_output": Optional[bool],
            "supports_b64_json_response_format": Optional[bool],
            "supports_batch_api": Optional[bool],
            "supports_code_execution": Optional[bool],
            "supports_commercial_use": Optional[bool],
            "supports_computer_use": Optional[bool],
            "supports_developer_message": Optional[bool],
            "supports_direct_cost": Optional[bool],
            "supports_distillation": Optional[bool],
            "supports_extended_thinking": Optional[bool],
            "supports_fine_tuning": Optional[bool],
            "supports_image_edit": Optional[bool],
            "supports_image_input": Optional[bool],
            "supports_image_output": Optional[bool],
            "supports_images": Optional[bool],
            "supports_json_mode_response_format": Optional[bool],
            "supports_json_schema_response_format": Optional[bool],
            "supports_max_completion_tokens": Optional[bool],
            "supports_openai_sdk": Optional[bool],
            "supports_parallel_tool_calls": Optional[bool],
            "supports_pdf_input": Optional[bool],
            "supports_prompt_caching": Optional[bool],
            "supports_reasoning": Optional[bool],
            "supports_reasoning_effort_default": Optional[bool],
            "supports_reasoning_effort_high": Optional[bool],
            "supports_reasoning_effort_low": Optional[bool],
            "supports_reasoning_effort_medium": Optional[bool],
            "supports_reasoning_effort_minimal": Optional[bool],
            "supports_reasoning_effort_none": Optional[bool],
            "supports_reasoning_effort_xhigh": Optional[bool],
            "supports_responses_api": Optional[bool],
            "supports_sampling_params": Optional[bool],
            "supports_streaming": Optional[bool],
            "supports_strict_tool": Optional[bool],
            "supports_structured_outputs": Optional[bool],
            "supports_system_message": Optional[bool],
            "supports_text": Optional[bool],
            "supports_text_input": Optional[bool],
            "supports_text_output": Optional[bool],
            "supports_tool_calling": Optional[bool],
            "supports_tool_choice": Optional[bool],
            "supports_url_context": Optional[bool],
            "supports_url_response_format": Optional[bool],
            "supports_video_input": Optional[bool],
            "supports_video_output": Optional[bool],
            "supports_video_seed": Optional[bool],
            "supports_vision": Optional[bool],
            "supports_web_search": Optional[bool],
            "supports_zdr": Optional[bool],
            "thinking_enforced": Optional[bool],
        },
        "model_developer": str,  # required
        "model_family": str,  # required
        "model_id": str,  # required
        "model_type": str,  # required
        "output_cost": float,  # required
        "parameters": {  # required
            "config": Dict[str, Any],  # required
            "description": Optional[str],
            "hints": Optional[str],
            "name": str,  # required
            "parameter": str,  # required
            "parameter_type": str,  # required
            "position": Optional[int],
        },
        "provider": str,  # required
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      configuration: Record<string, any>;  // required
      displayName: string;  // required
      hasFunctions: boolean;  // required
      id: string;  // required
      inputCost: number;  // required
      metadata: {  // required
        allowedPassthroughParameters?: string[];
        autorouter?: {
          economicalModel?: string;
          id?: string;
          profile?: string;
          strongModel?: string;
          version?: string;
        };
        cachedImageInputCost?: number;
        cachedInputCost?: number;
        chainOfThought?: boolean;
        contextLength?: number;
        contextWindow?: number;
        costEfficiencyRating?: number;
        costPerImage?: number;
        deprecationDate?: string;
        embeddingDimensions?: number;
        extendedContextPricingMode?: string;
        extendedContextThreshold?: number;
        generateAudio?: boolean;
        imageInputCost?: number;
        imageOutputCost?: number;
        imageTokenCost?: number;
        intelligenceRating?: number;
        isPrivate: boolean;  // required
        isRealtime?: boolean;
        knowledgeCutoff?: string;
        maxImagesPerRequest?: number;
        maxInputTokens?: number;
        maxOutputTokens?: number;
        millionSearchesCost?: number;
        millionTokensAbove128kCacheReadCost?: number;
        millionTokensAbove128kCacheWriteCost?: number;
        millionTokensAbove128kInputCost?: number;
        millionTokensAbove128kOutputCost?: number;
        millionTokensAbove200kCacheReadCost?: number;
        millionTokensAbove200kCacheWriteCost?: number;
        millionTokensAbove200kInputCost?: number;
        millionTokensAbove200kOutputCost?: number;
        millionTokensAudioInputCost?: number;
        millionTokensAudioOutputCost?: number;
        millionTokensBatchesInputCost?: number;
        millionTokensBatchesOutputCost?: number;
        millionTokensCacheReadCost?: number;
        millionTokensCacheWrite1hCost?: number;
        millionTokensCacheWrite5mCost?: number;
        millionTokensCacheWriteCost?: number;
        millionTokensInputCost?: number;
        millionTokensOutputCost?: number;
        millionTokensReasoningCost?: number;
        multilingual?: boolean;
        offline?: boolean;
        perVideoSecondCost?: number;
        perVideoSecondCost1080p?: number;
        pricing?: {
          cacheRead?: {
            cost: number;  // required
            currency: string;  // required
            per: number;  // required
            unit: string;  // required
          };
          cacheWrite1h?: {
            cost: number;  // required
            currency: string;  // required
            per: number;  // required
            unit: string;  // required
          };
          cacheWrite5m?: {
            cost: number;  // required
            currency: string;  // required
            per: number;  // required
            unit: string;  // required
          };
          input?: {
            cost: number;  // required
            currency: string;  // required
            per: number;  // required
            unit: string;  // required
          };
          output?: {
            cost: number;  // required
            currency: string;  // required
            per: number;  // required
            unit: string;  // required
          };
          reasoning?: {
            cost: number;  // required
            currency: string;  // required
            per: number;  // required
            unit: string;  // required
          };
          variants?: {
            cacheRead?: {
              cost: number;  // required
              currency: string;  // required
              per: number;  // required
              unit: string;  // required
            };
            cacheWrite1h?: {
              cost: number;  // required
              currency: string;  // required
              per: number;  // required
              unit: string;  // required
            };
            cacheWrite5m?: {
              cost: number;  // required
              currency: string;  // required
              per: number;  // required
              unit: string;  // required
            };
            input?: {
              cost: number;  // required
              currency: string;  // required
              per: number;  // required
              unit: string;  // required
            };
            output?: {
              cost: number;  // required
              currency: string;  // required
              per: number;  // required
              unit: string;  // required
            };
            reasoning?: {
              cost: number;  // required
              currency: string;  // required
              per: number;  // required
              unit: string;  // required
            };
            when: string;  // required
          };
        };
        reasoningCost?: number;
        reasoningTokens?: number;
        region?: string;
        speedRating?: number;
        supportedVideoAspectRatios?: string[];
        supportedVideoDurations?: number[];
        supportedVideoFrameImages?: string[];
        supportedVideoResolutions?: string[];
        supportedVideoSizes?: string[];
        supportsAdaptiveReasoning?: boolean;
        supportsAudioInput?: boolean;
        supportsAudioOutput?: boolean;
        supportsB64JsonResponseFormat?: boolean;
        supportsBatchApi?: boolean;
        supportsCodeExecution?: boolean;
        supportsCommercialUse?: boolean;
        supportsComputerUse?: boolean;
        supportsDeveloperMessage?: boolean;
        supportsDirectCost?: boolean;
        supportsDistillation?: boolean;
        supportsExtendedThinking?: boolean;
        supportsFineTuning?: boolean;
        supportsImageEdit?: boolean;
        supportsImageInput?: boolean;
        supportsImageOutput?: boolean;
        supportsImages?: boolean;
        supportsJsonModeResponseFormat?: boolean;
        supportsJsonSchemaResponseFormat?: boolean;
        supportsMaxCompletionTokens?: boolean;
        supportsOpenaiSDK?: boolean;
        supportsParallelToolCalls?: boolean;
        supportsPdfInput?: boolean;
        supportsPromptCaching?: boolean;
        supportsReasoning?: boolean;
        supportsReasoningEffortDefault?: boolean;
        supportsReasoningEffortHigh?: boolean;
        supportsReasoningEffortLow?: boolean;
        supportsReasoningEffortMedium?: boolean;
        supportsReasoningEffortMinimal?: boolean;
        supportsReasoningEffortNone?: boolean;
        supportsReasoningEffortXhigh?: boolean;
        supportsResponsesApi?: boolean;
        supportsSamplingParams?: boolean;
        supportsStreaming?: boolean;
        supportsStrictTool?: boolean;
        supportsStructuredOutputs?: boolean;
        supportsSystemMessage?: boolean;
        supportsText?: boolean;
        supportsTextInput?: boolean;
        supportsTextOutput?: boolean;
        supportsToolCalling?: boolean;
        supportsToolChoice?: boolean;
        supportsUrlContext?: boolean;
        supportsUrlResponseFormat?: boolean;
        supportsVideoInput?: boolean;
        supportsVideoOutput?: boolean;
        supportsVideoSeed?: boolean;
        supportsVision?: boolean;
        supportsWebSearch?: boolean;
        supportsZdr?: boolean;
        thinkingEnforced?: boolean;
      };
      modelDeveloper: string;  // required
      modelFamily: string;  // required
      modelId: string;  // required
      modelType: string;  // required
      outputCost: number;  // required
      parameters: {  // required
        config: Record<string, any>;  // required
        description?: string;
        hints?: string;
        name: string;  // required
        parameter: string;  // required
        parameterType: string;  // required
        position?: number;
      };
      provider: string;  // required
    }
    ```
  </CodeGroup>
</Expandable>

<Expandable title="Response">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "configuration": {
            "api_key_env": Optional[str],
            "api_version": Optional[str],
            "auth_mode": Optional[str],
            "auth_type": Optional[str],
            "base_url": Optional[str],
            "deployment_name": Optional[str],
            "endpoint": Optional[str],
            "inference_profile_arn": Optional[str],
            "integration_id": Optional[str],
            "is_openai_compatible": Optional[bool],
            "is_tuned_model": Optional[bool],
            "location": Optional[str],
            "project_id": Optional[str],
            "provider": str,
            "region": Optional[str],
            "should_use_beta_features": Optional[bool],
            "subtype": Optional[str],
            "workspace_id": Optional[str],
        },
        "created": date,
        "description": Nullable[str],
        "display_name": str,
        "docs_url": Nullable[str],
        "enabled": bool,
        "enabled_for_endpoints": bool,
        "enabled_for_playground": bool,
        "has_cpu_pricing": bool,
        "has_functions": bool,
        "id": str,
        "input_cost": Nullable[float],
        "input_currency": str,
        "is_active": bool,
        "metadata": {
            "allowed_passthrough_parameters": List[str],
            "autorouter": {  # optional
                "economical_model": Optional[str],
                "id": Optional[str],
                "profile": Optional[str],
                "strong_model": Optional[str],
                "version": Optional[str],
            },
            "cached_image_input_cost": Optional[float],
            "cached_input_cost": Optional[float],
            "chain_of_thought": Optional[bool],
            "context_length": Optional[int],
            "context_window": Optional[int],
            "cost_efficiency_rating": Optional[int],
            "cost_per_image": Optional[float],
            "deprecation_date": Optional[str],
            "embedding_dimensions": Optional[int],
            "extended_context_pricing_mode": Optional[str],
            "extended_context_threshold": Optional[int],
            "generate_audio": Optional[bool],
            "image_input_cost": Optional[float],
            "image_output_cost": Optional[float],
            "image_token_cost": Optional[float],
            "intelligence_rating": Optional[int],
            "is_private": bool,
            "is_realtime": Optional[bool],
            "knowledge_cutoff": Optional[str],
            "max_images_per_request": Optional[int],
            "max_input_tokens": Optional[int],
            "max_output_tokens": Optional[int],
            "million_searches_cost": Optional[float],
            "million_tokens_above_128k_cache_read_cost": Optional[float],
            "million_tokens_above_128k_cache_write_cost": Optional[float],
            "million_tokens_above_128k_input_cost": Optional[float],
            "million_tokens_above_128k_output_cost": Optional[float],
            "million_tokens_above_200k_cache_read_cost": Optional[float],
            "million_tokens_above_200k_cache_write_cost": Optional[float],
            "million_tokens_above_200k_input_cost": Optional[float],
            "million_tokens_above_200k_output_cost": Optional[float],
            "million_tokens_audio_input_cost": Optional[float],
            "million_tokens_audio_output_cost": Optional[float],
            "million_tokens_batches_input_cost": Optional[float],
            "million_tokens_batches_output_cost": Optional[float],
            "million_tokens_cache_read_cost": Optional[float],
            "million_tokens_cache_write_1h_cost": Optional[float],
            "million_tokens_cache_write_5m_cost": Optional[float],
            "million_tokens_cache_write_cost": Optional[float],
            "million_tokens_input_cost": Optional[float],
            "million_tokens_output_cost": Optional[float],
            "million_tokens_reasoning_cost": Optional[float],
            "multilingual": Optional[bool],
            "offline": Optional[bool],
            "per_video_second_cost": Optional[float],
            "per_video_second_cost_1080p": Optional[float],
            "pricing": {  # optional
                "cache_read": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_1h": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_5m": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "input": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "output": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "reasoning": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "variants": {  # optional
                    "cache_read": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_1h": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_5m": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "input": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "output": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "reasoning": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "when": str,
                },
            },
            "reasoning_cost": Optional[float],
            "reasoning_tokens": Optional[int],
            "region": Optional[str],
            "speed_rating": Optional[int],
            "supported_video_aspect_ratios": List[str],
            "supported_video_durations": List[int],
            "supported_video_frame_images": List[str],
            "supported_video_resolutions": List[str],
            "supported_video_sizes": List[str],
            "supports_adaptive_reasoning": Optional[bool],
            "supports_audio_input": Optional[bool],
            "supports_audio_output": Optional[bool],
            "supports_b64_json_response_format": Optional[bool],
            "supports_batch_api": Optional[bool],
            "supports_code_execution": Optional[bool],
            "supports_commercial_use": Optional[bool],
            "supports_computer_use": Optional[bool],
            "supports_developer_message": Optional[bool],
            "supports_direct_cost": Optional[bool],
            "supports_distillation": Optional[bool],
            "supports_extended_thinking": Optional[bool],
            "supports_fine_tuning": Optional[bool],
            "supports_image_edit": Optional[bool],
            "supports_image_input": Optional[bool],
            "supports_image_output": Optional[bool],
            "supports_images": Optional[bool],
            "supports_json_mode_response_format": Optional[bool],
            "supports_json_schema_response_format": Optional[bool],
            "supports_max_completion_tokens": Optional[bool],
            "supports_openai_sdk": Optional[bool],
            "supports_parallel_tool_calls": Optional[bool],
            "supports_pdf_input": Optional[bool],
            "supports_prompt_caching": Optional[bool],
            "supports_reasoning": Optional[bool],
            "supports_reasoning_effort_default": Optional[bool],
            "supports_reasoning_effort_high": Optional[bool],
            "supports_reasoning_effort_low": Optional[bool],
            "supports_reasoning_effort_medium": Optional[bool],
            "supports_reasoning_effort_minimal": Optional[bool],
            "supports_reasoning_effort_none": Optional[bool],
            "supports_reasoning_effort_xhigh": Optional[bool],
            "supports_responses_api": Optional[bool],
            "supports_sampling_params": Optional[bool],
            "supports_streaming": Optional[bool],
            "supports_strict_tool": Optional[bool],
            "supports_structured_outputs": Optional[bool],
            "supports_system_message": Optional[bool],
            "supports_text": Optional[bool],
            "supports_text_input": Optional[bool],
            "supports_text_output": Optional[bool],
            "supports_tool_calling": Optional[bool],
            "supports_tool_choice": Optional[bool],
            "supports_url_context": Optional[bool],
            "supports_url_response_format": Optional[bool],
            "supports_video_input": Optional[bool],
            "supports_video_output": Optional[bool],
            "supports_video_seed": Optional[bool],
            "supports_vision": Optional[bool],
            "supports_web_search": Optional[bool],
            "supports_zdr": Optional[bool],
            "thinking_enforced": Optional[bool],
        },
        "model_developer": Optional[str],
        "model_family": Optional[str],
        "model_id": str,
        "model_type": str,
        "output_cost": Nullable[float],
        "output_currency": str,
        "owner": str,
        "parameters": {
            "config": Dict[str, Any],
            "description": Nullable[str],
            "hints": Optional[str],
            "id": str,
            "is_active": bool,
            "name": str,
            "parameter": str,
            "parameter_type": str,
            "position": Optional[int],
        },
        "pricing_url": Nullable[str],
        "provider": str,
        "ref_id": str,
        "updated": date,
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      configuration: {
        apiKeyEnv?: string;
        apiVersion?: string;
        authMode?: string;
        authType?: string;
        baseUrl?: string;
        deploymentName?: string;
        endpoint?: string;
        inferenceProfileArn?: string;
        integrationId?: string;
        isOpenaiCompatible?: boolean;
        isTunedModel?: boolean;
        location?: string;
        projectId?: string;
        provider: string;
        region?: string;
        shouldUseBetaFeatures?: boolean;
        subtype?: string;
        workspaceId?: string;
      };
      created: Date;
      description: string;
      displayName: string;
      docsUrl: string;
      enabled: boolean;
      enabledForEndpoints: boolean;
      enabledForPlayground: boolean;
      hasCpuPricing: boolean;
      hasFunctions: boolean;
      id: string;
      inputCost: number;
      inputCurrency: string;
      isActive: boolean;
      metadata: {
        allowedPassthroughParameters?: string[];
        autorouter?: {
          economicalModel?: string;
          id?: string;
          profile?: string;
          strongModel?: string;
          version?: string;
        };
        cachedImageInputCost?: number;
        cachedInputCost?: number;
        chainOfThought?: boolean;
        contextLength?: number;
        contextWindow?: number;
        costEfficiencyRating?: number;
        costPerImage?: number;
        deprecationDate?: string;
        embeddingDimensions?: number;
        extendedContextPricingMode?: string;
        extendedContextThreshold?: number;
        generateAudio?: boolean;
        imageInputCost?: number;
        imageOutputCost?: number;
        imageTokenCost?: number;
        intelligenceRating?: number;
        isPrivate: boolean;
        isRealtime?: boolean;
        knowledgeCutoff?: string;
        maxImagesPerRequest?: number;
        maxInputTokens?: number;
        maxOutputTokens?: number;
        millionSearchesCost?: number;
        millionTokensAbove128kCacheReadCost?: number;
        millionTokensAbove128kCacheWriteCost?: number;
        millionTokensAbove128kInputCost?: number;
        millionTokensAbove128kOutputCost?: number;
        millionTokensAbove200kCacheReadCost?: number;
        millionTokensAbove200kCacheWriteCost?: number;
        millionTokensAbove200kInputCost?: number;
        millionTokensAbove200kOutputCost?: number;
        millionTokensAudioInputCost?: number;
        millionTokensAudioOutputCost?: number;
        millionTokensBatchesInputCost?: number;
        millionTokensBatchesOutputCost?: number;
        millionTokensCacheReadCost?: number;
        millionTokensCacheWrite1hCost?: number;
        millionTokensCacheWrite5mCost?: number;
        millionTokensCacheWriteCost?: number;
        millionTokensInputCost?: number;
        millionTokensOutputCost?: number;
        millionTokensReasoningCost?: number;
        multilingual?: boolean;
        offline?: boolean;
        perVideoSecondCost?: number;
        perVideoSecondCost1080p?: number;
        pricing?: {
          cacheRead?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite1h?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite5m?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          input?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          output?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          reasoning?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          variants?: {
            cacheRead?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite1h?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite5m?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            input?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            output?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            reasoning?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            when: string;
          };
        };
        reasoningCost?: number;
        reasoningTokens?: number;
        region?: string;
        speedRating?: number;
        supportedVideoAspectRatios?: string[];
        supportedVideoDurations?: number[];
        supportedVideoFrameImages?: string[];
        supportedVideoResolutions?: string[];
        supportedVideoSizes?: string[];
        supportsAdaptiveReasoning?: boolean;
        supportsAudioInput?: boolean;
        supportsAudioOutput?: boolean;
        supportsB64JsonResponseFormat?: boolean;
        supportsBatchApi?: boolean;
        supportsCodeExecution?: boolean;
        supportsCommercialUse?: boolean;
        supportsComputerUse?: boolean;
        supportsDeveloperMessage?: boolean;
        supportsDirectCost?: boolean;
        supportsDistillation?: boolean;
        supportsExtendedThinking?: boolean;
        supportsFineTuning?: boolean;
        supportsImageEdit?: boolean;
        supportsImageInput?: boolean;
        supportsImageOutput?: boolean;
        supportsImages?: boolean;
        supportsJsonModeResponseFormat?: boolean;
        supportsJsonSchemaResponseFormat?: boolean;
        supportsMaxCompletionTokens?: boolean;
        supportsOpenaiSDK?: boolean;
        supportsParallelToolCalls?: boolean;
        supportsPdfInput?: boolean;
        supportsPromptCaching?: boolean;
        supportsReasoning?: boolean;
        supportsReasoningEffortDefault?: boolean;
        supportsReasoningEffortHigh?: boolean;
        supportsReasoningEffortLow?: boolean;
        supportsReasoningEffortMedium?: boolean;
        supportsReasoningEffortMinimal?: boolean;
        supportsReasoningEffortNone?: boolean;
        supportsReasoningEffortXhigh?: boolean;
        supportsResponsesApi?: boolean;
        supportsSamplingParams?: boolean;
        supportsStreaming?: boolean;
        supportsStrictTool?: boolean;
        supportsStructuredOutputs?: boolean;
        supportsSystemMessage?: boolean;
        supportsText?: boolean;
        supportsTextInput?: boolean;
        supportsTextOutput?: boolean;
        supportsToolCalling?: boolean;
        supportsToolChoice?: boolean;
        supportsUrlContext?: boolean;
        supportsUrlResponseFormat?: boolean;
        supportsVideoInput?: boolean;
        supportsVideoOutput?: boolean;
        supportsVideoSeed?: boolean;
        supportsVision?: boolean;
        supportsWebSearch?: boolean;
        supportsZdr?: boolean;
        thinkingEnforced?: boolean;
      };
      modelDeveloper?: string;
      modelFamily?: string;
      modelId: string;
      modelType: string;
      outputCost: number;
      outputCurrency: string;
      owner: string;
      parameters: {
        config: Record<string, any>;
        description: string;
        hints?: string;
        id: string;
        isActive: boolean;
        name: string;
        parameter: string;
        parameterType: string;
        position?: number;
      };
      pricingUrl: string;
      provider: string;
      refId: string;
      updated: Date;
    }
    ```
  </CodeGroup>
</Expandable>

### Create Autorouter

Creates an autorouter model that routes between a strong and economical source model based on the requested profile. Both source models must already exist for the workspace and be marked autorouter-eligible in master data.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      res = orq.models.create_autorouter(economical_model="<value>", key="<key>", strong_model="<value>")

      # Handle response
      print(res)

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    const result = await orq.models.createAutorouter({
      economicalModel: "<value>",
      key: "<key>",
      strongModel: "<value>",
    });

    console.log(result);
  }

  run();
  ```
</CodeGroup>

<Expandable title="Parameters">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "economical_model": str,  # required
        "key": str,  # required
        "strong_model": str,  # required
        "profile": Optional[str],
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      economicalModel: string;  // required
      key: string;  // required
      profile?: string;
      strongModel: string;  // required
    }
    ```
  </CodeGroup>
</Expandable>

<Expandable title="Response">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "configuration": {
            "api_key_env": Optional[str],
            "api_version": Optional[str],
            "auth_mode": Optional[str],
            "auth_type": Optional[str],
            "base_url": Optional[str],
            "deployment_name": Optional[str],
            "endpoint": Optional[str],
            "inference_profile_arn": Optional[str],
            "integration_id": Optional[str],
            "is_openai_compatible": Optional[bool],
            "is_tuned_model": Optional[bool],
            "location": Optional[str],
            "project_id": Optional[str],
            "provider": str,
            "region": Optional[str],
            "should_use_beta_features": Optional[bool],
            "subtype": Optional[str],
            "workspace_id": Optional[str],
        },
        "created": date,
        "description": Nullable[str],
        "display_name": str,
        "docs_url": Nullable[str],
        "enabled": bool,
        "enabled_for_endpoints": bool,
        "enabled_for_playground": bool,
        "has_cpu_pricing": bool,
        "has_functions": bool,
        "id": str,
        "input_cost": Nullable[float],
        "input_currency": str,
        "is_active": bool,
        "metadata": {
            "allowed_passthrough_parameters": List[str],
            "autorouter": {  # optional
                "economical_model": Optional[str],
                "id": Optional[str],
                "profile": Optional[str],
                "strong_model": Optional[str],
                "version": Optional[str],
            },
            "cached_image_input_cost": Optional[float],
            "cached_input_cost": Optional[float],
            "chain_of_thought": Optional[bool],
            "context_length": Optional[int],
            "context_window": Optional[int],
            "cost_efficiency_rating": Optional[int],
            "cost_per_image": Optional[float],
            "deprecation_date": Optional[str],
            "embedding_dimensions": Optional[int],
            "extended_context_pricing_mode": Optional[str],
            "extended_context_threshold": Optional[int],
            "generate_audio": Optional[bool],
            "image_input_cost": Optional[float],
            "image_output_cost": Optional[float],
            "image_token_cost": Optional[float],
            "intelligence_rating": Optional[int],
            "is_private": bool,
            "is_realtime": Optional[bool],
            "knowledge_cutoff": Optional[str],
            "max_images_per_request": Optional[int],
            "max_input_tokens": Optional[int],
            "max_output_tokens": Optional[int],
            "million_searches_cost": Optional[float],
            "million_tokens_above_128k_cache_read_cost": Optional[float],
            "million_tokens_above_128k_cache_write_cost": Optional[float],
            "million_tokens_above_128k_input_cost": Optional[float],
            "million_tokens_above_128k_output_cost": Optional[float],
            "million_tokens_above_200k_cache_read_cost": Optional[float],
            "million_tokens_above_200k_cache_write_cost": Optional[float],
            "million_tokens_above_200k_input_cost": Optional[float],
            "million_tokens_above_200k_output_cost": Optional[float],
            "million_tokens_audio_input_cost": Optional[float],
            "million_tokens_audio_output_cost": Optional[float],
            "million_tokens_batches_input_cost": Optional[float],
            "million_tokens_batches_output_cost": Optional[float],
            "million_tokens_cache_read_cost": Optional[float],
            "million_tokens_cache_write_1h_cost": Optional[float],
            "million_tokens_cache_write_5m_cost": Optional[float],
            "million_tokens_cache_write_cost": Optional[float],
            "million_tokens_input_cost": Optional[float],
            "million_tokens_output_cost": Optional[float],
            "million_tokens_reasoning_cost": Optional[float],
            "multilingual": Optional[bool],
            "offline": Optional[bool],
            "per_video_second_cost": Optional[float],
            "per_video_second_cost_1080p": Optional[float],
            "pricing": {  # optional
                "cache_read": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_1h": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_5m": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "input": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "output": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "reasoning": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "variants": {  # optional
                    "cache_read": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_1h": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_5m": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "input": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "output": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "reasoning": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "when": str,
                },
            },
            "reasoning_cost": Optional[float],
            "reasoning_tokens": Optional[int],
            "region": Optional[str],
            "speed_rating": Optional[int],
            "supported_video_aspect_ratios": List[str],
            "supported_video_durations": List[int],
            "supported_video_frame_images": List[str],
            "supported_video_resolutions": List[str],
            "supported_video_sizes": List[str],
            "supports_adaptive_reasoning": Optional[bool],
            "supports_audio_input": Optional[bool],
            "supports_audio_output": Optional[bool],
            "supports_b64_json_response_format": Optional[bool],
            "supports_batch_api": Optional[bool],
            "supports_code_execution": Optional[bool],
            "supports_commercial_use": Optional[bool],
            "supports_computer_use": Optional[bool],
            "supports_developer_message": Optional[bool],
            "supports_direct_cost": Optional[bool],
            "supports_distillation": Optional[bool],
            "supports_extended_thinking": Optional[bool],
            "supports_fine_tuning": Optional[bool],
            "supports_image_edit": Optional[bool],
            "supports_image_input": Optional[bool],
            "supports_image_output": Optional[bool],
            "supports_images": Optional[bool],
            "supports_json_mode_response_format": Optional[bool],
            "supports_json_schema_response_format": Optional[bool],
            "supports_max_completion_tokens": Optional[bool],
            "supports_openai_sdk": Optional[bool],
            "supports_parallel_tool_calls": Optional[bool],
            "supports_pdf_input": Optional[bool],
            "supports_prompt_caching": Optional[bool],
            "supports_reasoning": Optional[bool],
            "supports_reasoning_effort_default": Optional[bool],
            "supports_reasoning_effort_high": Optional[bool],
            "supports_reasoning_effort_low": Optional[bool],
            "supports_reasoning_effort_medium": Optional[bool],
            "supports_reasoning_effort_minimal": Optional[bool],
            "supports_reasoning_effort_none": Optional[bool],
            "supports_reasoning_effort_xhigh": Optional[bool],
            "supports_responses_api": Optional[bool],
            "supports_sampling_params": Optional[bool],
            "supports_streaming": Optional[bool],
            "supports_strict_tool": Optional[bool],
            "supports_structured_outputs": Optional[bool],
            "supports_system_message": Optional[bool],
            "supports_text": Optional[bool],
            "supports_text_input": Optional[bool],
            "supports_text_output": Optional[bool],
            "supports_tool_calling": Optional[bool],
            "supports_tool_choice": Optional[bool],
            "supports_url_context": Optional[bool],
            "supports_url_response_format": Optional[bool],
            "supports_video_input": Optional[bool],
            "supports_video_output": Optional[bool],
            "supports_video_seed": Optional[bool],
            "supports_vision": Optional[bool],
            "supports_web_search": Optional[bool],
            "supports_zdr": Optional[bool],
            "thinking_enforced": Optional[bool],
        },
        "model_developer": Optional[str],
        "model_family": Optional[str],
        "model_id": str,
        "model_type": str,
        "output_cost": Nullable[float],
        "output_currency": str,
        "owner": str,
        "parameters": {
            "config": Dict[str, Any],
            "description": Nullable[str],
            "hints": Optional[str],
            "id": str,
            "is_active": bool,
            "name": str,
            "parameter": str,
            "parameter_type": str,
            "position": Optional[int],
        },
        "pricing_url": Nullable[str],
        "provider": str,
        "ref_id": str,
        "updated": date,
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      configuration: {
        apiKeyEnv?: string;
        apiVersion?: string;
        authMode?: string;
        authType?: string;
        baseUrl?: string;
        deploymentName?: string;
        endpoint?: string;
        inferenceProfileArn?: string;
        integrationId?: string;
        isOpenaiCompatible?: boolean;
        isTunedModel?: boolean;
        location?: string;
        projectId?: string;
        provider: string;
        region?: string;
        shouldUseBetaFeatures?: boolean;
        subtype?: string;
        workspaceId?: string;
      };
      created: Date;
      description: string;
      displayName: string;
      docsUrl: string;
      enabled: boolean;
      enabledForEndpoints: boolean;
      enabledForPlayground: boolean;
      hasCpuPricing: boolean;
      hasFunctions: boolean;
      id: string;
      inputCost: number;
      inputCurrency: string;
      isActive: boolean;
      metadata: {
        allowedPassthroughParameters?: string[];
        autorouter?: {
          economicalModel?: string;
          id?: string;
          profile?: string;
          strongModel?: string;
          version?: string;
        };
        cachedImageInputCost?: number;
        cachedInputCost?: number;
        chainOfThought?: boolean;
        contextLength?: number;
        contextWindow?: number;
        costEfficiencyRating?: number;
        costPerImage?: number;
        deprecationDate?: string;
        embeddingDimensions?: number;
        extendedContextPricingMode?: string;
        extendedContextThreshold?: number;
        generateAudio?: boolean;
        imageInputCost?: number;
        imageOutputCost?: number;
        imageTokenCost?: number;
        intelligenceRating?: number;
        isPrivate: boolean;
        isRealtime?: boolean;
        knowledgeCutoff?: string;
        maxImagesPerRequest?: number;
        maxInputTokens?: number;
        maxOutputTokens?: number;
        millionSearchesCost?: number;
        millionTokensAbove128kCacheReadCost?: number;
        millionTokensAbove128kCacheWriteCost?: number;
        millionTokensAbove128kInputCost?: number;
        millionTokensAbove128kOutputCost?: number;
        millionTokensAbove200kCacheReadCost?: number;
        millionTokensAbove200kCacheWriteCost?: number;
        millionTokensAbove200kInputCost?: number;
        millionTokensAbove200kOutputCost?: number;
        millionTokensAudioInputCost?: number;
        millionTokensAudioOutputCost?: number;
        millionTokensBatchesInputCost?: number;
        millionTokensBatchesOutputCost?: number;
        millionTokensCacheReadCost?: number;
        millionTokensCacheWrite1hCost?: number;
        millionTokensCacheWrite5mCost?: number;
        millionTokensCacheWriteCost?: number;
        millionTokensInputCost?: number;
        millionTokensOutputCost?: number;
        millionTokensReasoningCost?: number;
        multilingual?: boolean;
        offline?: boolean;
        perVideoSecondCost?: number;
        perVideoSecondCost1080p?: number;
        pricing?: {
          cacheRead?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite1h?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite5m?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          input?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          output?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          reasoning?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          variants?: {
            cacheRead?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite1h?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite5m?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            input?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            output?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            reasoning?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            when: string;
          };
        };
        reasoningCost?: number;
        reasoningTokens?: number;
        region?: string;
        speedRating?: number;
        supportedVideoAspectRatios?: string[];
        supportedVideoDurations?: number[];
        supportedVideoFrameImages?: string[];
        supportedVideoResolutions?: string[];
        supportedVideoSizes?: string[];
        supportsAdaptiveReasoning?: boolean;
        supportsAudioInput?: boolean;
        supportsAudioOutput?: boolean;
        supportsB64JsonResponseFormat?: boolean;
        supportsBatchApi?: boolean;
        supportsCodeExecution?: boolean;
        supportsCommercialUse?: boolean;
        supportsComputerUse?: boolean;
        supportsDeveloperMessage?: boolean;
        supportsDirectCost?: boolean;
        supportsDistillation?: boolean;
        supportsExtendedThinking?: boolean;
        supportsFineTuning?: boolean;
        supportsImageEdit?: boolean;
        supportsImageInput?: boolean;
        supportsImageOutput?: boolean;
        supportsImages?: boolean;
        supportsJsonModeResponseFormat?: boolean;
        supportsJsonSchemaResponseFormat?: boolean;
        supportsMaxCompletionTokens?: boolean;
        supportsOpenaiSDK?: boolean;
        supportsParallelToolCalls?: boolean;
        supportsPdfInput?: boolean;
        supportsPromptCaching?: boolean;
        supportsReasoning?: boolean;
        supportsReasoningEffortDefault?: boolean;
        supportsReasoningEffortHigh?: boolean;
        supportsReasoningEffortLow?: boolean;
        supportsReasoningEffortMedium?: boolean;
        supportsReasoningEffortMinimal?: boolean;
        supportsReasoningEffortNone?: boolean;
        supportsReasoningEffortXhigh?: boolean;
        supportsResponsesApi?: boolean;
        supportsSamplingParams?: boolean;
        supportsStreaming?: boolean;
        supportsStrictTool?: boolean;
        supportsStructuredOutputs?: boolean;
        supportsSystemMessage?: boolean;
        supportsText?: boolean;
        supportsTextInput?: boolean;
        supportsTextOutput?: boolean;
        supportsToolCalling?: boolean;
        supportsToolChoice?: boolean;
        supportsUrlContext?: boolean;
        supportsUrlResponseFormat?: boolean;
        supportsVideoInput?: boolean;
        supportsVideoOutput?: boolean;
        supportsVideoSeed?: boolean;
        supportsVision?: boolean;
        supportsWebSearch?: boolean;
        supportsZdr?: boolean;
        thinkingEnforced?: boolean;
      };
      modelDeveloper?: string;
      modelFamily?: string;
      modelId: string;
      modelType: string;
      outputCost: number;
      outputCurrency: string;
      owner: string;
      parameters: {
        config: Record<string, any>;
        description: string;
        hints?: string;
        id: string;
        isActive: boolean;
        name: string;
        parameter: string;
        parameterType: string;
        position?: number;
      };
      pricingUrl: string;
      provider: string;
      refId: string;
      updated: Date;
    }
    ```
  </CodeGroup>
</Expandable>

### Update Autorouter

Re-configures an autorouter model. Each of key/strong\_model/economical\_model/profile falls back to the existing value when omitted. Changing the key enforces uniqueness and rewrites PRICING\_KV.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      res = orq.models.update_autorouter(id="<id>")

      # Handle response
      print(res)

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    const result = await orq.models.updateAutorouter({
      id: "<id>",
      requestBody: {},
    });

    console.log(result);
  }

  run();
  ```
</CodeGroup>

<Expandable title="Parameters">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "id": str,  # required
        "economical_model": Optional[str],
        "key": Optional[str],
        "profile": Optional[str],
        "strong_model": Optional[str],
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      id: string;  // required
      requestBody: {  // required
        economicalModel?: string;
        key?: string;
        profile?: string;
        strongModel?: string;
      };
    }
    ```
  </CodeGroup>
</Expandable>

<Expandable title="Response">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "configuration": {
            "api_key_env": Optional[str],
            "api_version": Optional[str],
            "auth_mode": Optional[str],
            "auth_type": Optional[str],
            "base_url": Optional[str],
            "deployment_name": Optional[str],
            "endpoint": Optional[str],
            "inference_profile_arn": Optional[str],
            "integration_id": Optional[str],
            "is_openai_compatible": Optional[bool],
            "is_tuned_model": Optional[bool],
            "location": Optional[str],
            "project_id": Optional[str],
            "provider": str,
            "region": Optional[str],
            "should_use_beta_features": Optional[bool],
            "subtype": Optional[str],
            "workspace_id": Optional[str],
        },
        "created": date,
        "description": Nullable[str],
        "display_name": str,
        "docs_url": Nullable[str],
        "enabled": bool,
        "enabled_for_endpoints": bool,
        "enabled_for_playground": bool,
        "has_cpu_pricing": bool,
        "has_functions": bool,
        "id": str,
        "input_cost": Nullable[float],
        "input_currency": str,
        "is_active": bool,
        "metadata": {
            "allowed_passthrough_parameters": List[str],
            "autorouter": {  # optional
                "economical_model": Optional[str],
                "id": Optional[str],
                "profile": Optional[str],
                "strong_model": Optional[str],
                "version": Optional[str],
            },
            "cached_image_input_cost": Optional[float],
            "cached_input_cost": Optional[float],
            "chain_of_thought": Optional[bool],
            "context_length": Optional[int],
            "context_window": Optional[int],
            "cost_efficiency_rating": Optional[int],
            "cost_per_image": Optional[float],
            "deprecation_date": Optional[str],
            "embedding_dimensions": Optional[int],
            "extended_context_pricing_mode": Optional[str],
            "extended_context_threshold": Optional[int],
            "generate_audio": Optional[bool],
            "image_input_cost": Optional[float],
            "image_output_cost": Optional[float],
            "image_token_cost": Optional[float],
            "intelligence_rating": Optional[int],
            "is_private": bool,
            "is_realtime": Optional[bool],
            "knowledge_cutoff": Optional[str],
            "max_images_per_request": Optional[int],
            "max_input_tokens": Optional[int],
            "max_output_tokens": Optional[int],
            "million_searches_cost": Optional[float],
            "million_tokens_above_128k_cache_read_cost": Optional[float],
            "million_tokens_above_128k_cache_write_cost": Optional[float],
            "million_tokens_above_128k_input_cost": Optional[float],
            "million_tokens_above_128k_output_cost": Optional[float],
            "million_tokens_above_200k_cache_read_cost": Optional[float],
            "million_tokens_above_200k_cache_write_cost": Optional[float],
            "million_tokens_above_200k_input_cost": Optional[float],
            "million_tokens_above_200k_output_cost": Optional[float],
            "million_tokens_audio_input_cost": Optional[float],
            "million_tokens_audio_output_cost": Optional[float],
            "million_tokens_batches_input_cost": Optional[float],
            "million_tokens_batches_output_cost": Optional[float],
            "million_tokens_cache_read_cost": Optional[float],
            "million_tokens_cache_write_1h_cost": Optional[float],
            "million_tokens_cache_write_5m_cost": Optional[float],
            "million_tokens_cache_write_cost": Optional[float],
            "million_tokens_input_cost": Optional[float],
            "million_tokens_output_cost": Optional[float],
            "million_tokens_reasoning_cost": Optional[float],
            "multilingual": Optional[bool],
            "offline": Optional[bool],
            "per_video_second_cost": Optional[float],
            "per_video_second_cost_1080p": Optional[float],
            "pricing": {  # optional
                "cache_read": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_1h": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_5m": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "input": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "output": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "reasoning": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "variants": {  # optional
                    "cache_read": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_1h": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_5m": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "input": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "output": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "reasoning": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "when": str,
                },
            },
            "reasoning_cost": Optional[float],
            "reasoning_tokens": Optional[int],
            "region": Optional[str],
            "speed_rating": Optional[int],
            "supported_video_aspect_ratios": List[str],
            "supported_video_durations": List[int],
            "supported_video_frame_images": List[str],
            "supported_video_resolutions": List[str],
            "supported_video_sizes": List[str],
            "supports_adaptive_reasoning": Optional[bool],
            "supports_audio_input": Optional[bool],
            "supports_audio_output": Optional[bool],
            "supports_b64_json_response_format": Optional[bool],
            "supports_batch_api": Optional[bool],
            "supports_code_execution": Optional[bool],
            "supports_commercial_use": Optional[bool],
            "supports_computer_use": Optional[bool],
            "supports_developer_message": Optional[bool],
            "supports_direct_cost": Optional[bool],
            "supports_distillation": Optional[bool],
            "supports_extended_thinking": Optional[bool],
            "supports_fine_tuning": Optional[bool],
            "supports_image_edit": Optional[bool],
            "supports_image_input": Optional[bool],
            "supports_image_output": Optional[bool],
            "supports_images": Optional[bool],
            "supports_json_mode_response_format": Optional[bool],
            "supports_json_schema_response_format": Optional[bool],
            "supports_max_completion_tokens": Optional[bool],
            "supports_openai_sdk": Optional[bool],
            "supports_parallel_tool_calls": Optional[bool],
            "supports_pdf_input": Optional[bool],
            "supports_prompt_caching": Optional[bool],
            "supports_reasoning": Optional[bool],
            "supports_reasoning_effort_default": Optional[bool],
            "supports_reasoning_effort_high": Optional[bool],
            "supports_reasoning_effort_low": Optional[bool],
            "supports_reasoning_effort_medium": Optional[bool],
            "supports_reasoning_effort_minimal": Optional[bool],
            "supports_reasoning_effort_none": Optional[bool],
            "supports_reasoning_effort_xhigh": Optional[bool],
            "supports_responses_api": Optional[bool],
            "supports_sampling_params": Optional[bool],
            "supports_streaming": Optional[bool],
            "supports_strict_tool": Optional[bool],
            "supports_structured_outputs": Optional[bool],
            "supports_system_message": Optional[bool],
            "supports_text": Optional[bool],
            "supports_text_input": Optional[bool],
            "supports_text_output": Optional[bool],
            "supports_tool_calling": Optional[bool],
            "supports_tool_choice": Optional[bool],
            "supports_url_context": Optional[bool],
            "supports_url_response_format": Optional[bool],
            "supports_video_input": Optional[bool],
            "supports_video_output": Optional[bool],
            "supports_video_seed": Optional[bool],
            "supports_vision": Optional[bool],
            "supports_web_search": Optional[bool],
            "supports_zdr": Optional[bool],
            "thinking_enforced": Optional[bool],
        },
        "model_developer": Optional[str],
        "model_family": Optional[str],
        "model_id": str,
        "model_type": str,
        "output_cost": Nullable[float],
        "output_currency": str,
        "owner": str,
        "parameters": {
            "config": Dict[str, Any],
            "description": Nullable[str],
            "hints": Optional[str],
            "id": str,
            "is_active": bool,
            "name": str,
            "parameter": str,
            "parameter_type": str,
            "position": Optional[int],
        },
        "pricing_url": Nullable[str],
        "provider": str,
        "ref_id": str,
        "updated": date,
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      configuration: {
        apiKeyEnv?: string;
        apiVersion?: string;
        authMode?: string;
        authType?: string;
        baseUrl?: string;
        deploymentName?: string;
        endpoint?: string;
        inferenceProfileArn?: string;
        integrationId?: string;
        isOpenaiCompatible?: boolean;
        isTunedModel?: boolean;
        location?: string;
        projectId?: string;
        provider: string;
        region?: string;
        shouldUseBetaFeatures?: boolean;
        subtype?: string;
        workspaceId?: string;
      };
      created: Date;
      description: string;
      displayName: string;
      docsUrl: string;
      enabled: boolean;
      enabledForEndpoints: boolean;
      enabledForPlayground: boolean;
      hasCpuPricing: boolean;
      hasFunctions: boolean;
      id: string;
      inputCost: number;
      inputCurrency: string;
      isActive: boolean;
      metadata: {
        allowedPassthroughParameters?: string[];
        autorouter?: {
          economicalModel?: string;
          id?: string;
          profile?: string;
          strongModel?: string;
          version?: string;
        };
        cachedImageInputCost?: number;
        cachedInputCost?: number;
        chainOfThought?: boolean;
        contextLength?: number;
        contextWindow?: number;
        costEfficiencyRating?: number;
        costPerImage?: number;
        deprecationDate?: string;
        embeddingDimensions?: number;
        extendedContextPricingMode?: string;
        extendedContextThreshold?: number;
        generateAudio?: boolean;
        imageInputCost?: number;
        imageOutputCost?: number;
        imageTokenCost?: number;
        intelligenceRating?: number;
        isPrivate: boolean;
        isRealtime?: boolean;
        knowledgeCutoff?: string;
        maxImagesPerRequest?: number;
        maxInputTokens?: number;
        maxOutputTokens?: number;
        millionSearchesCost?: number;
        millionTokensAbove128kCacheReadCost?: number;
        millionTokensAbove128kCacheWriteCost?: number;
        millionTokensAbove128kInputCost?: number;
        millionTokensAbove128kOutputCost?: number;
        millionTokensAbove200kCacheReadCost?: number;
        millionTokensAbove200kCacheWriteCost?: number;
        millionTokensAbove200kInputCost?: number;
        millionTokensAbove200kOutputCost?: number;
        millionTokensAudioInputCost?: number;
        millionTokensAudioOutputCost?: number;
        millionTokensBatchesInputCost?: number;
        millionTokensBatchesOutputCost?: number;
        millionTokensCacheReadCost?: number;
        millionTokensCacheWrite1hCost?: number;
        millionTokensCacheWrite5mCost?: number;
        millionTokensCacheWriteCost?: number;
        millionTokensInputCost?: number;
        millionTokensOutputCost?: number;
        millionTokensReasoningCost?: number;
        multilingual?: boolean;
        offline?: boolean;
        perVideoSecondCost?: number;
        perVideoSecondCost1080p?: number;
        pricing?: {
          cacheRead?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite1h?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite5m?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          input?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          output?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          reasoning?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          variants?: {
            cacheRead?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite1h?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite5m?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            input?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            output?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            reasoning?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            when: string;
          };
        };
        reasoningCost?: number;
        reasoningTokens?: number;
        region?: string;
        speedRating?: number;
        supportedVideoAspectRatios?: string[];
        supportedVideoDurations?: number[];
        supportedVideoFrameImages?: string[];
        supportedVideoResolutions?: string[];
        supportedVideoSizes?: string[];
        supportsAdaptiveReasoning?: boolean;
        supportsAudioInput?: boolean;
        supportsAudioOutput?: boolean;
        supportsB64JsonResponseFormat?: boolean;
        supportsBatchApi?: boolean;
        supportsCodeExecution?: boolean;
        supportsCommercialUse?: boolean;
        supportsComputerUse?: boolean;
        supportsDeveloperMessage?: boolean;
        supportsDirectCost?: boolean;
        supportsDistillation?: boolean;
        supportsExtendedThinking?: boolean;
        supportsFineTuning?: boolean;
        supportsImageEdit?: boolean;
        supportsImageInput?: boolean;
        supportsImageOutput?: boolean;
        supportsImages?: boolean;
        supportsJsonModeResponseFormat?: boolean;
        supportsJsonSchemaResponseFormat?: boolean;
        supportsMaxCompletionTokens?: boolean;
        supportsOpenaiSDK?: boolean;
        supportsParallelToolCalls?: boolean;
        supportsPdfInput?: boolean;
        supportsPromptCaching?: boolean;
        supportsReasoning?: boolean;
        supportsReasoningEffortDefault?: boolean;
        supportsReasoningEffortHigh?: boolean;
        supportsReasoningEffortLow?: boolean;
        supportsReasoningEffortMedium?: boolean;
        supportsReasoningEffortMinimal?: boolean;
        supportsReasoningEffortNone?: boolean;
        supportsReasoningEffortXhigh?: boolean;
        supportsResponsesApi?: boolean;
        supportsSamplingParams?: boolean;
        supportsStreaming?: boolean;
        supportsStrictTool?: boolean;
        supportsStructuredOutputs?: boolean;
        supportsSystemMessage?: boolean;
        supportsText?: boolean;
        supportsTextInput?: boolean;
        supportsTextOutput?: boolean;
        supportsToolCalling?: boolean;
        supportsToolChoice?: boolean;
        supportsUrlContext?: boolean;
        supportsUrlResponseFormat?: boolean;
        supportsVideoInput?: boolean;
        supportsVideoOutput?: boolean;
        supportsVideoSeed?: boolean;
        supportsVision?: boolean;
        supportsWebSearch?: boolean;
        supportsZdr?: boolean;
        thinkingEnforced?: boolean;
      };
      modelDeveloper?: string;
      modelFamily?: string;
      modelId: string;
      modelType: string;
      outputCost: number;
      outputCurrency: string;
      owner: string;
      parameters: {
        config: Record<string, any>;
        description: string;
        hints?: string;
        id: string;
        isActive: boolean;
        name: string;
        parameter: string;
        parameterType: string;
        position?: number;
      };
      pricingUrl: string;
      provider: string;
      refId: string;
      updated: Date;
    }
    ```
  </CodeGroup>
</Expandable>

### Create AWS Bedrock

Registers an AWS Bedrock inference profile as a custom model for the workspace. Credentials are resolved at request time via either the integration reference or pod-identity - nothing is stored with the model.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      res = orq.models.create_aws_bedrock(auth_mode="<value>", display_name="Shanon.Wintheiser", model_developer="<value>", model_id="<id>", region="<value>")

      # Handle response
      print(res)

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    const result = await orq.models.createAwsBedrock({
      authMode: "<value>",
      displayName: "Shanon.Wintheiser",
      modelDeveloper: "<value>",
      modelId: "<id>",
      region: "<value>",
    });

    console.log(result);
  }

  run();
  ```
</CodeGroup>

<Expandable title="Parameters">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "auth_mode": str,  # required
        "display_name": str,  # required
        "model_developer": str,  # required
        "model_id": str,  # required
        "region": str,  # required
        "assume_role_arn": Optional[str],
        "assume_role_external_id": Optional[str],
        "description": Optional[str],
        "has_reasoning": Optional[bool],
        "input_cost": Optional[float],
        "integration_id": Optional[str],
        "max_tokens": Optional[int],
        "model_family": Optional[str],
        "model_type": Optional[str],
        "output_cost": Optional[float],
        "supports_adaptive_reasoning": Optional[bool],
        "supports_extended_thinking": Optional[bool],
        "supports_json_mode": Optional[bool],
        "supports_json_schema": Optional[bool],
        "supports_strict_tool": Optional[bool],
        "supports_tool_calling": Optional[bool],
        "supports_vision": Optional[bool],
        "temperature": Optional[float],
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      assumeRoleArn?: string;
      assumeRoleExternalId?: string;
      authMode: string;  // required
      description?: string;
      displayName: string;  // required
      hasReasoning?: boolean;
      inputCost?: number;
      integrationId?: string;
      maxTokens?: number;
      modelDeveloper: string;  // required
      modelFamily?: string;
      modelId: string;  // required
      modelType?: string;
      outputCost?: number;
      region: string;  // required
      supportsAdaptiveReasoning?: boolean;
      supportsExtendedThinking?: boolean;
      supportsJsonMode?: boolean;
      supportsJsonSchema?: boolean;
      supportsStrictTool?: boolean;
      supportsToolCalling?: boolean;
      supportsVision?: boolean;
      temperature?: number;
    }
    ```
  </CodeGroup>
</Expandable>

<Expandable title="Response">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "configuration": {
            "api_key_env": Optional[str],
            "api_version": Optional[str],
            "auth_mode": Optional[str],
            "auth_type": Optional[str],
            "base_url": Optional[str],
            "deployment_name": Optional[str],
            "endpoint": Optional[str],
            "inference_profile_arn": Optional[str],
            "integration_id": Optional[str],
            "is_openai_compatible": Optional[bool],
            "is_tuned_model": Optional[bool],
            "location": Optional[str],
            "project_id": Optional[str],
            "provider": str,
            "region": Optional[str],
            "should_use_beta_features": Optional[bool],
            "subtype": Optional[str],
            "workspace_id": Optional[str],
        },
        "created": date,
        "description": Nullable[str],
        "display_name": str,
        "docs_url": Nullable[str],
        "enabled": bool,
        "enabled_for_endpoints": bool,
        "enabled_for_playground": bool,
        "has_cpu_pricing": bool,
        "has_functions": bool,
        "id": str,
        "input_cost": Nullable[float],
        "input_currency": str,
        "is_active": bool,
        "metadata": {
            "allowed_passthrough_parameters": List[str],
            "autorouter": {  # optional
                "economical_model": Optional[str],
                "id": Optional[str],
                "profile": Optional[str],
                "strong_model": Optional[str],
                "version": Optional[str],
            },
            "cached_image_input_cost": Optional[float],
            "cached_input_cost": Optional[float],
            "chain_of_thought": Optional[bool],
            "context_length": Optional[int],
            "context_window": Optional[int],
            "cost_efficiency_rating": Optional[int],
            "cost_per_image": Optional[float],
            "deprecation_date": Optional[str],
            "embedding_dimensions": Optional[int],
            "extended_context_pricing_mode": Optional[str],
            "extended_context_threshold": Optional[int],
            "generate_audio": Optional[bool],
            "image_input_cost": Optional[float],
            "image_output_cost": Optional[float],
            "image_token_cost": Optional[float],
            "intelligence_rating": Optional[int],
            "is_private": bool,
            "is_realtime": Optional[bool],
            "knowledge_cutoff": Optional[str],
            "max_images_per_request": Optional[int],
            "max_input_tokens": Optional[int],
            "max_output_tokens": Optional[int],
            "million_searches_cost": Optional[float],
            "million_tokens_above_128k_cache_read_cost": Optional[float],
            "million_tokens_above_128k_cache_write_cost": Optional[float],
            "million_tokens_above_128k_input_cost": Optional[float],
            "million_tokens_above_128k_output_cost": Optional[float],
            "million_tokens_above_200k_cache_read_cost": Optional[float],
            "million_tokens_above_200k_cache_write_cost": Optional[float],
            "million_tokens_above_200k_input_cost": Optional[float],
            "million_tokens_above_200k_output_cost": Optional[float],
            "million_tokens_audio_input_cost": Optional[float],
            "million_tokens_audio_output_cost": Optional[float],
            "million_tokens_batches_input_cost": Optional[float],
            "million_tokens_batches_output_cost": Optional[float],
            "million_tokens_cache_read_cost": Optional[float],
            "million_tokens_cache_write_1h_cost": Optional[float],
            "million_tokens_cache_write_5m_cost": Optional[float],
            "million_tokens_cache_write_cost": Optional[float],
            "million_tokens_input_cost": Optional[float],
            "million_tokens_output_cost": Optional[float],
            "million_tokens_reasoning_cost": Optional[float],
            "multilingual": Optional[bool],
            "offline": Optional[bool],
            "per_video_second_cost": Optional[float],
            "per_video_second_cost_1080p": Optional[float],
            "pricing": {  # optional
                "cache_read": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_1h": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_5m": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "input": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "output": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "reasoning": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "variants": {  # optional
                    "cache_read": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_1h": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_5m": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "input": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "output": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "reasoning": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "when": str,
                },
            },
            "reasoning_cost": Optional[float],
            "reasoning_tokens": Optional[int],
            "region": Optional[str],
            "speed_rating": Optional[int],
            "supported_video_aspect_ratios": List[str],
            "supported_video_durations": List[int],
            "supported_video_frame_images": List[str],
            "supported_video_resolutions": List[str],
            "supported_video_sizes": List[str],
            "supports_adaptive_reasoning": Optional[bool],
            "supports_audio_input": Optional[bool],
            "supports_audio_output": Optional[bool],
            "supports_b64_json_response_format": Optional[bool],
            "supports_batch_api": Optional[bool],
            "supports_code_execution": Optional[bool],
            "supports_commercial_use": Optional[bool],
            "supports_computer_use": Optional[bool],
            "supports_developer_message": Optional[bool],
            "supports_direct_cost": Optional[bool],
            "supports_distillation": Optional[bool],
            "supports_extended_thinking": Optional[bool],
            "supports_fine_tuning": Optional[bool],
            "supports_image_edit": Optional[bool],
            "supports_image_input": Optional[bool],
            "supports_image_output": Optional[bool],
            "supports_images": Optional[bool],
            "supports_json_mode_response_format": Optional[bool],
            "supports_json_schema_response_format": Optional[bool],
            "supports_max_completion_tokens": Optional[bool],
            "supports_openai_sdk": Optional[bool],
            "supports_parallel_tool_calls": Optional[bool],
            "supports_pdf_input": Optional[bool],
            "supports_prompt_caching": Optional[bool],
            "supports_reasoning": Optional[bool],
            "supports_reasoning_effort_default": Optional[bool],
            "supports_reasoning_effort_high": Optional[bool],
            "supports_reasoning_effort_low": Optional[bool],
            "supports_reasoning_effort_medium": Optional[bool],
            "supports_reasoning_effort_minimal": Optional[bool],
            "supports_reasoning_effort_none": Optional[bool],
            "supports_reasoning_effort_xhigh": Optional[bool],
            "supports_responses_api": Optional[bool],
            "supports_sampling_params": Optional[bool],
            "supports_streaming": Optional[bool],
            "supports_strict_tool": Optional[bool],
            "supports_structured_outputs": Optional[bool],
            "supports_system_message": Optional[bool],
            "supports_text": Optional[bool],
            "supports_text_input": Optional[bool],
            "supports_text_output": Optional[bool],
            "supports_tool_calling": Optional[bool],
            "supports_tool_choice": Optional[bool],
            "supports_url_context": Optional[bool],
            "supports_url_response_format": Optional[bool],
            "supports_video_input": Optional[bool],
            "supports_video_output": Optional[bool],
            "supports_video_seed": Optional[bool],
            "supports_vision": Optional[bool],
            "supports_web_search": Optional[bool],
            "supports_zdr": Optional[bool],
            "thinking_enforced": Optional[bool],
        },
        "model_developer": Optional[str],
        "model_family": Optional[str],
        "model_id": str,
        "model_type": str,
        "output_cost": Nullable[float],
        "output_currency": str,
        "owner": str,
        "parameters": {
            "config": Dict[str, Any],
            "description": Nullable[str],
            "hints": Optional[str],
            "id": str,
            "is_active": bool,
            "name": str,
            "parameter": str,
            "parameter_type": str,
            "position": Optional[int],
        },
        "pricing_url": Nullable[str],
        "provider": str,
        "ref_id": str,
        "updated": date,
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      configuration: {
        apiKeyEnv?: string;
        apiVersion?: string;
        authMode?: string;
        authType?: string;
        baseUrl?: string;
        deploymentName?: string;
        endpoint?: string;
        inferenceProfileArn?: string;
        integrationId?: string;
        isOpenaiCompatible?: boolean;
        isTunedModel?: boolean;
        location?: string;
        projectId?: string;
        provider: string;
        region?: string;
        shouldUseBetaFeatures?: boolean;
        subtype?: string;
        workspaceId?: string;
      };
      created: Date;
      description: string;
      displayName: string;
      docsUrl: string;
      enabled: boolean;
      enabledForEndpoints: boolean;
      enabledForPlayground: boolean;
      hasCpuPricing: boolean;
      hasFunctions: boolean;
      id: string;
      inputCost: number;
      inputCurrency: string;
      isActive: boolean;
      metadata: {
        allowedPassthroughParameters?: string[];
        autorouter?: {
          economicalModel?: string;
          id?: string;
          profile?: string;
          strongModel?: string;
          version?: string;
        };
        cachedImageInputCost?: number;
        cachedInputCost?: number;
        chainOfThought?: boolean;
        contextLength?: number;
        contextWindow?: number;
        costEfficiencyRating?: number;
        costPerImage?: number;
        deprecationDate?: string;
        embeddingDimensions?: number;
        extendedContextPricingMode?: string;
        extendedContextThreshold?: number;
        generateAudio?: boolean;
        imageInputCost?: number;
        imageOutputCost?: number;
        imageTokenCost?: number;
        intelligenceRating?: number;
        isPrivate: boolean;
        isRealtime?: boolean;
        knowledgeCutoff?: string;
        maxImagesPerRequest?: number;
        maxInputTokens?: number;
        maxOutputTokens?: number;
        millionSearchesCost?: number;
        millionTokensAbove128kCacheReadCost?: number;
        millionTokensAbove128kCacheWriteCost?: number;
        millionTokensAbove128kInputCost?: number;
        millionTokensAbove128kOutputCost?: number;
        millionTokensAbove200kCacheReadCost?: number;
        millionTokensAbove200kCacheWriteCost?: number;
        millionTokensAbove200kInputCost?: number;
        millionTokensAbove200kOutputCost?: number;
        millionTokensAudioInputCost?: number;
        millionTokensAudioOutputCost?: number;
        millionTokensBatchesInputCost?: number;
        millionTokensBatchesOutputCost?: number;
        millionTokensCacheReadCost?: number;
        millionTokensCacheWrite1hCost?: number;
        millionTokensCacheWrite5mCost?: number;
        millionTokensCacheWriteCost?: number;
        millionTokensInputCost?: number;
        millionTokensOutputCost?: number;
        millionTokensReasoningCost?: number;
        multilingual?: boolean;
        offline?: boolean;
        perVideoSecondCost?: number;
        perVideoSecondCost1080p?: number;
        pricing?: {
          cacheRead?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite1h?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite5m?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          input?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          output?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          reasoning?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          variants?: {
            cacheRead?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite1h?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite5m?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            input?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            output?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            reasoning?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            when: string;
          };
        };
        reasoningCost?: number;
        reasoningTokens?: number;
        region?: string;
        speedRating?: number;
        supportedVideoAspectRatios?: string[];
        supportedVideoDurations?: number[];
        supportedVideoFrameImages?: string[];
        supportedVideoResolutions?: string[];
        supportedVideoSizes?: string[];
        supportsAdaptiveReasoning?: boolean;
        supportsAudioInput?: boolean;
        supportsAudioOutput?: boolean;
        supportsB64JsonResponseFormat?: boolean;
        supportsBatchApi?: boolean;
        supportsCodeExecution?: boolean;
        supportsCommercialUse?: boolean;
        supportsComputerUse?: boolean;
        supportsDeveloperMessage?: boolean;
        supportsDirectCost?: boolean;
        supportsDistillation?: boolean;
        supportsExtendedThinking?: boolean;
        supportsFineTuning?: boolean;
        supportsImageEdit?: boolean;
        supportsImageInput?: boolean;
        supportsImageOutput?: boolean;
        supportsImages?: boolean;
        supportsJsonModeResponseFormat?: boolean;
        supportsJsonSchemaResponseFormat?: boolean;
        supportsMaxCompletionTokens?: boolean;
        supportsOpenaiSDK?: boolean;
        supportsParallelToolCalls?: boolean;
        supportsPdfInput?: boolean;
        supportsPromptCaching?: boolean;
        supportsReasoning?: boolean;
        supportsReasoningEffortDefault?: boolean;
        supportsReasoningEffortHigh?: boolean;
        supportsReasoningEffortLow?: boolean;
        supportsReasoningEffortMedium?: boolean;
        supportsReasoningEffortMinimal?: boolean;
        supportsReasoningEffortNone?: boolean;
        supportsReasoningEffortXhigh?: boolean;
        supportsResponsesApi?: boolean;
        supportsSamplingParams?: boolean;
        supportsStreaming?: boolean;
        supportsStrictTool?: boolean;
        supportsStructuredOutputs?: boolean;
        supportsSystemMessage?: boolean;
        supportsText?: boolean;
        supportsTextInput?: boolean;
        supportsTextOutput?: boolean;
        supportsToolCalling?: boolean;
        supportsToolChoice?: boolean;
        supportsUrlContext?: boolean;
        supportsUrlResponseFormat?: boolean;
        supportsVideoInput?: boolean;
        supportsVideoOutput?: boolean;
        supportsVideoSeed?: boolean;
        supportsVision?: boolean;
        supportsWebSearch?: boolean;
        supportsZdr?: boolean;
        thinkingEnforced?: boolean;
      };
      modelDeveloper?: string;
      modelFamily?: string;
      modelId: string;
      modelType: string;
      outputCost: number;
      outputCurrency: string;
      owner: string;
      parameters: {
        config: Record<string, any>;
        description: string;
        hints?: string;
        id: string;
        isActive: boolean;
        name: string;
        parameter: string;
        parameterType: string;
        position?: number;
      };
      pricingUrl: string;
      provider: string;
      refId: string;
      updated: Date;
    }
    ```
  </CodeGroup>
</Expandable>

### Validate AWS Bedrock

Performs a live Bedrock Converse probe to verify the inference profile ARN and credentials, then best-effort enriches the response from known system models.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      orq.models.validate_aws_bedrock(auth_mode="<value>", inference_profile_arn="<value>", region="<value>")

      # Use the SDK ...

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    await orq.models.validateAwsBedrock({
      authMode: "<value>",
      inferenceProfileArn: "<value>",
      region: "<value>",
    });

  }

  run();
  ```
</CodeGroup>

<Expandable title="Parameters">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "auth_mode": str,  # required
        "inference_profile_arn": str,  # required
        "region": str,  # required
        "assume_role_arn": Optional[str],
        "assume_role_external_id": Optional[str],
        "integration_id": Optional[str],
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      assumeRoleArn?: string;
      assumeRoleExternalId?: string;
      authMode: string;  // required
      inferenceProfileArn: string;  // required
      integrationId?: string;
      region: string;  // required
    }
    ```
  </CodeGroup>
</Expandable>

### Update AWS Bedrock

Updates an AWS Bedrock custom model. ARN changes are format-validated (live AWS validation lives in the dedicated validate endpoint). Configuration and metadata are spread-merged. Parameters are replaced only when the request produces a non-empty list.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      res = orq.models.update_aws_bedrock(id="<id>")

      # Handle response
      print(res)

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    const result = await orq.models.updateAwsBedrock({
      id: "<id>",
      requestBody: {},
    });

    console.log(result);
  }

  run();
  ```
</CodeGroup>

<Expandable title="Parameters">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "id": str,  # required
        "assume_role_arn": Optional[str],
        "assume_role_external_id": Optional[str],
        "description": Optional[str],
        "display_name": Optional[str],
        "has_reasoning": Optional[bool],
        "input_cost": Optional[float],
        "max_tokens": Optional[int],
        "model_developer": Optional[str],
        "model_family": Optional[str],
        "model_id": Optional[str],
        "model_type": Optional[str],
        "output_cost": Optional[float],
        "region": Optional[str],
        "supports_adaptive_reasoning": Optional[bool],
        "supports_extended_thinking": Optional[bool],
        "supports_json_mode": Optional[bool],
        "supports_json_schema": Optional[bool],
        "supports_strict_tool": Optional[bool],
        "supports_tool_calling": Optional[bool],
        "supports_vision": Optional[bool],
        "temperature": Optional[float],
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      id: string;  // required
      requestBody: {  // required
        assumeRoleArn?: string;
        assumeRoleExternalId?: string;
        description?: string;
        displayName?: string;
        hasReasoning?: boolean;
        inputCost?: number;
        maxTokens?: number;
        modelDeveloper?: string;
        modelFamily?: string;
        modelId?: string;
        modelType?: string;
        outputCost?: number;
        region?: string;
        supportsAdaptiveReasoning?: boolean;
        supportsExtendedThinking?: boolean;
        supportsJsonMode?: boolean;
        supportsJsonSchema?: boolean;
        supportsStrictTool?: boolean;
        supportsToolCalling?: boolean;
        supportsVision?: boolean;
        temperature?: number;
      };
    }
    ```
  </CodeGroup>
</Expandable>

<Expandable title="Response">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "configuration": {
            "api_key_env": Optional[str],
            "api_version": Optional[str],
            "auth_mode": Optional[str],
            "auth_type": Optional[str],
            "base_url": Optional[str],
            "deployment_name": Optional[str],
            "endpoint": Optional[str],
            "inference_profile_arn": Optional[str],
            "integration_id": Optional[str],
            "is_openai_compatible": Optional[bool],
            "is_tuned_model": Optional[bool],
            "location": Optional[str],
            "project_id": Optional[str],
            "provider": str,
            "region": Optional[str],
            "should_use_beta_features": Optional[bool],
            "subtype": Optional[str],
            "workspace_id": Optional[str],
        },
        "created": date,
        "description": Nullable[str],
        "display_name": str,
        "docs_url": Nullable[str],
        "enabled": bool,
        "enabled_for_endpoints": bool,
        "enabled_for_playground": bool,
        "has_cpu_pricing": bool,
        "has_functions": bool,
        "id": str,
        "input_cost": Nullable[float],
        "input_currency": str,
        "is_active": bool,
        "metadata": {
            "allowed_passthrough_parameters": List[str],
            "autorouter": {  # optional
                "economical_model": Optional[str],
                "id": Optional[str],
                "profile": Optional[str],
                "strong_model": Optional[str],
                "version": Optional[str],
            },
            "cached_image_input_cost": Optional[float],
            "cached_input_cost": Optional[float],
            "chain_of_thought": Optional[bool],
            "context_length": Optional[int],
            "context_window": Optional[int],
            "cost_efficiency_rating": Optional[int],
            "cost_per_image": Optional[float],
            "deprecation_date": Optional[str],
            "embedding_dimensions": Optional[int],
            "extended_context_pricing_mode": Optional[str],
            "extended_context_threshold": Optional[int],
            "generate_audio": Optional[bool],
            "image_input_cost": Optional[float],
            "image_output_cost": Optional[float],
            "image_token_cost": Optional[float],
            "intelligence_rating": Optional[int],
            "is_private": bool,
            "is_realtime": Optional[bool],
            "knowledge_cutoff": Optional[str],
            "max_images_per_request": Optional[int],
            "max_input_tokens": Optional[int],
            "max_output_tokens": Optional[int],
            "million_searches_cost": Optional[float],
            "million_tokens_above_128k_cache_read_cost": Optional[float],
            "million_tokens_above_128k_cache_write_cost": Optional[float],
            "million_tokens_above_128k_input_cost": Optional[float],
            "million_tokens_above_128k_output_cost": Optional[float],
            "million_tokens_above_200k_cache_read_cost": Optional[float],
            "million_tokens_above_200k_cache_write_cost": Optional[float],
            "million_tokens_above_200k_input_cost": Optional[float],
            "million_tokens_above_200k_output_cost": Optional[float],
            "million_tokens_audio_input_cost": Optional[float],
            "million_tokens_audio_output_cost": Optional[float],
            "million_tokens_batches_input_cost": Optional[float],
            "million_tokens_batches_output_cost": Optional[float],
            "million_tokens_cache_read_cost": Optional[float],
            "million_tokens_cache_write_1h_cost": Optional[float],
            "million_tokens_cache_write_5m_cost": Optional[float],
            "million_tokens_cache_write_cost": Optional[float],
            "million_tokens_input_cost": Optional[float],
            "million_tokens_output_cost": Optional[float],
            "million_tokens_reasoning_cost": Optional[float],
            "multilingual": Optional[bool],
            "offline": Optional[bool],
            "per_video_second_cost": Optional[float],
            "per_video_second_cost_1080p": Optional[float],
            "pricing": {  # optional
                "cache_read": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_1h": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_5m": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "input": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "output": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "reasoning": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "variants": {  # optional
                    "cache_read": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_1h": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_5m": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "input": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "output": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "reasoning": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "when": str,
                },
            },
            "reasoning_cost": Optional[float],
            "reasoning_tokens": Optional[int],
            "region": Optional[str],
            "speed_rating": Optional[int],
            "supported_video_aspect_ratios": List[str],
            "supported_video_durations": List[int],
            "supported_video_frame_images": List[str],
            "supported_video_resolutions": List[str],
            "supported_video_sizes": List[str],
            "supports_adaptive_reasoning": Optional[bool],
            "supports_audio_input": Optional[bool],
            "supports_audio_output": Optional[bool],
            "supports_b64_json_response_format": Optional[bool],
            "supports_batch_api": Optional[bool],
            "supports_code_execution": Optional[bool],
            "supports_commercial_use": Optional[bool],
            "supports_computer_use": Optional[bool],
            "supports_developer_message": Optional[bool],
            "supports_direct_cost": Optional[bool],
            "supports_distillation": Optional[bool],
            "supports_extended_thinking": Optional[bool],
            "supports_fine_tuning": Optional[bool],
            "supports_image_edit": Optional[bool],
            "supports_image_input": Optional[bool],
            "supports_image_output": Optional[bool],
            "supports_images": Optional[bool],
            "supports_json_mode_response_format": Optional[bool],
            "supports_json_schema_response_format": Optional[bool],
            "supports_max_completion_tokens": Optional[bool],
            "supports_openai_sdk": Optional[bool],
            "supports_parallel_tool_calls": Optional[bool],
            "supports_pdf_input": Optional[bool],
            "supports_prompt_caching": Optional[bool],
            "supports_reasoning": Optional[bool],
            "supports_reasoning_effort_default": Optional[bool],
            "supports_reasoning_effort_high": Optional[bool],
            "supports_reasoning_effort_low": Optional[bool],
            "supports_reasoning_effort_medium": Optional[bool],
            "supports_reasoning_effort_minimal": Optional[bool],
            "supports_reasoning_effort_none": Optional[bool],
            "supports_reasoning_effort_xhigh": Optional[bool],
            "supports_responses_api": Optional[bool],
            "supports_sampling_params": Optional[bool],
            "supports_streaming": Optional[bool],
            "supports_strict_tool": Optional[bool],
            "supports_structured_outputs": Optional[bool],
            "supports_system_message": Optional[bool],
            "supports_text": Optional[bool],
            "supports_text_input": Optional[bool],
            "supports_text_output": Optional[bool],
            "supports_tool_calling": Optional[bool],
            "supports_tool_choice": Optional[bool],
            "supports_url_context": Optional[bool],
            "supports_url_response_format": Optional[bool],
            "supports_video_input": Optional[bool],
            "supports_video_output": Optional[bool],
            "supports_video_seed": Optional[bool],
            "supports_vision": Optional[bool],
            "supports_web_search": Optional[bool],
            "supports_zdr": Optional[bool],
            "thinking_enforced": Optional[bool],
        },
        "model_developer": Optional[str],
        "model_family": Optional[str],
        "model_id": str,
        "model_type": str,
        "output_cost": Nullable[float],
        "output_currency": str,
        "owner": str,
        "parameters": {
            "config": Dict[str, Any],
            "description": Nullable[str],
            "hints": Optional[str],
            "id": str,
            "is_active": bool,
            "name": str,
            "parameter": str,
            "parameter_type": str,
            "position": Optional[int],
        },
        "pricing_url": Nullable[str],
        "provider": str,
        "ref_id": str,
        "updated": date,
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      configuration: {
        apiKeyEnv?: string;
        apiVersion?: string;
        authMode?: string;
        authType?: string;
        baseUrl?: string;
        deploymentName?: string;
        endpoint?: string;
        inferenceProfileArn?: string;
        integrationId?: string;
        isOpenaiCompatible?: boolean;
        isTunedModel?: boolean;
        location?: string;
        projectId?: string;
        provider: string;
        region?: string;
        shouldUseBetaFeatures?: boolean;
        subtype?: string;
        workspaceId?: string;
      };
      created: Date;
      description: string;
      displayName: string;
      docsUrl: string;
      enabled: boolean;
      enabledForEndpoints: boolean;
      enabledForPlayground: boolean;
      hasCpuPricing: boolean;
      hasFunctions: boolean;
      id: string;
      inputCost: number;
      inputCurrency: string;
      isActive: boolean;
      metadata: {
        allowedPassthroughParameters?: string[];
        autorouter?: {
          economicalModel?: string;
          id?: string;
          profile?: string;
          strongModel?: string;
          version?: string;
        };
        cachedImageInputCost?: number;
        cachedInputCost?: number;
        chainOfThought?: boolean;
        contextLength?: number;
        contextWindow?: number;
        costEfficiencyRating?: number;
        costPerImage?: number;
        deprecationDate?: string;
        embeddingDimensions?: number;
        extendedContextPricingMode?: string;
        extendedContextThreshold?: number;
        generateAudio?: boolean;
        imageInputCost?: number;
        imageOutputCost?: number;
        imageTokenCost?: number;
        intelligenceRating?: number;
        isPrivate: boolean;
        isRealtime?: boolean;
        knowledgeCutoff?: string;
        maxImagesPerRequest?: number;
        maxInputTokens?: number;
        maxOutputTokens?: number;
        millionSearchesCost?: number;
        millionTokensAbove128kCacheReadCost?: number;
        millionTokensAbove128kCacheWriteCost?: number;
        millionTokensAbove128kInputCost?: number;
        millionTokensAbove128kOutputCost?: number;
        millionTokensAbove200kCacheReadCost?: number;
        millionTokensAbove200kCacheWriteCost?: number;
        millionTokensAbove200kInputCost?: number;
        millionTokensAbove200kOutputCost?: number;
        millionTokensAudioInputCost?: number;
        millionTokensAudioOutputCost?: number;
        millionTokensBatchesInputCost?: number;
        millionTokensBatchesOutputCost?: number;
        millionTokensCacheReadCost?: number;
        millionTokensCacheWrite1hCost?: number;
        millionTokensCacheWrite5mCost?: number;
        millionTokensCacheWriteCost?: number;
        millionTokensInputCost?: number;
        millionTokensOutputCost?: number;
        millionTokensReasoningCost?: number;
        multilingual?: boolean;
        offline?: boolean;
        perVideoSecondCost?: number;
        perVideoSecondCost1080p?: number;
        pricing?: {
          cacheRead?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite1h?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite5m?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          input?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          output?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          reasoning?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          variants?: {
            cacheRead?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite1h?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite5m?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            input?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            output?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            reasoning?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            when: string;
          };
        };
        reasoningCost?: number;
        reasoningTokens?: number;
        region?: string;
        speedRating?: number;
        supportedVideoAspectRatios?: string[];
        supportedVideoDurations?: number[];
        supportedVideoFrameImages?: string[];
        supportedVideoResolutions?: string[];
        supportedVideoSizes?: string[];
        supportsAdaptiveReasoning?: boolean;
        supportsAudioInput?: boolean;
        supportsAudioOutput?: boolean;
        supportsB64JsonResponseFormat?: boolean;
        supportsBatchApi?: boolean;
        supportsCodeExecution?: boolean;
        supportsCommercialUse?: boolean;
        supportsComputerUse?: boolean;
        supportsDeveloperMessage?: boolean;
        supportsDirectCost?: boolean;
        supportsDistillation?: boolean;
        supportsExtendedThinking?: boolean;
        supportsFineTuning?: boolean;
        supportsImageEdit?: boolean;
        supportsImageInput?: boolean;
        supportsImageOutput?: boolean;
        supportsImages?: boolean;
        supportsJsonModeResponseFormat?: boolean;
        supportsJsonSchemaResponseFormat?: boolean;
        supportsMaxCompletionTokens?: boolean;
        supportsOpenaiSDK?: boolean;
        supportsParallelToolCalls?: boolean;
        supportsPdfInput?: boolean;
        supportsPromptCaching?: boolean;
        supportsReasoning?: boolean;
        supportsReasoningEffortDefault?: boolean;
        supportsReasoningEffortHigh?: boolean;
        supportsReasoningEffortLow?: boolean;
        supportsReasoningEffortMedium?: boolean;
        supportsReasoningEffortMinimal?: boolean;
        supportsReasoningEffortNone?: boolean;
        supportsReasoningEffortXhigh?: boolean;
        supportsResponsesApi?: boolean;
        supportsSamplingParams?: boolean;
        supportsStreaming?: boolean;
        supportsStrictTool?: boolean;
        supportsStructuredOutputs?: boolean;
        supportsSystemMessage?: boolean;
        supportsText?: boolean;
        supportsTextInput?: boolean;
        supportsTextOutput?: boolean;
        supportsToolCalling?: boolean;
        supportsToolChoice?: boolean;
        supportsUrlContext?: boolean;
        supportsUrlResponseFormat?: boolean;
        supportsVideoInput?: boolean;
        supportsVideoOutput?: boolean;
        supportsVideoSeed?: boolean;
        supportsVision?: boolean;
        supportsWebSearch?: boolean;
        supportsZdr?: boolean;
        thinkingEnforced?: boolean;
      };
      modelDeveloper?: string;
      modelFamily?: string;
      modelId: string;
      modelType: string;
      outputCost: number;
      outputCurrency: string;
      owner: string;
      parameters: {
        config: Record<string, any>;
        description: string;
        hints?: string;
        id: string;
        isActive: boolean;
        name: string;
        parameter: string;
        parameterType: string;
        position?: number;
      };
      pricingUrl: string;
      provider: string;
      refId: string;
      updated: Date;
    }
    ```
  </CodeGroup>
</Expandable>

### Azure Foundry Deployments

Lists Azure Foundry deployments under the given base\_url and joins each entry with the Orq master-data row. Only OpenAI-developed deployments in succeeded state with chat/completion/embedding/vision model types are returned.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      res = orq.models.azure_foundry_deployments(api_key="<value>", base_url="https://admired-overcoat.info", provider="<value>")

      # Handle response
      print(res)

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    const result = await orq.models.azureFoundryDeployments({
      apiKey: "<value>",
      baseUrl: "https://admired-overcoat.info",
      provider: "<value>",
    });

    console.log(result);
  }

  run();
  ```
</CodeGroup>

<Expandable title="Parameters">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "api_key": str,  # required
        "base_url": str,  # required
        "provider": str,  # required
        "api_version": Optional[str],
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      apiKey: string;  // required
      apiVersion?: string;
      baseUrl: string;  // required
      provider: string;  // required
    }
    ```
  </CodeGroup>
</Expandable>

<Expandable title="Response">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "deployments": {
            "id": str,
            "master_data": {  # optional
                "has_functions": bool,
                "id": str,
                "input_cost": float,
                "metadata": Dict[str, Any],
                "model_developer": Nullable[str],
                "model_family": Nullable[str],
                "model_id": str,
                "model_type": str,
                "output_cost": float,
                "parameters": List[Any],
            },
            "model": str,
        },
        "region": str,
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      deployments: {
        id: string;
        masterData?: {
          hasFunctions: boolean;
          id: string;
          inputCost: number;
          metadata?: Record<string, any>;
          modelDeveloper: string;
          modelFamily: string;
          modelId: string;
          modelType: string;
          outputCost: number;
          parameters: any[];
        };
        model: string;
      };
      region: string;
    }
    ```
  </CodeGroup>
</Expandable>

### Import LiteLLM

Bulk-imports a list of LiteLLM model definitions into the workspace model garden.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      res = orq.models.import_litellm(request=[
          {
              "litellm_params": {
                  "merge_reasoning_content_in_choices": False,
                  "model": "CX-9",
                  "use_in_pass_through": False,
                  "use_litellm_proxy": False,
              },
              "model_info": {
                  "db_model": True,
                  "id": "<id>",
                  "key": "<key>",
                  "litellm_provider": "<value>",
                  "mode": "<value>",
              },
              "model_name": "<value>",
          },
      ])

      # Handle response
      print(res)

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    const result = await orq.models.importLitellm([
      {
        litellmParams: {
          mergeReasoningContentInChoices: false,
          model: "CX-9",
          useInPassThrough: false,
          useLitellmProxy: false,
        },
        modelInfo: {
          dbModel: true,
          id: "<id>",
          key: "<key>",
          litellmProvider: "<value>",
          mode: "<value>",
        },
        modelName: "<value>",
      },
    ]);

    console.log(result);
  }

  run();
  ```
</CodeGroup>

<Expandable title="Parameters">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "request": List[LiteLLMModel],  # required
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      request: LiteLLMModel[];  // required
    }
    ```
  </CodeGroup>
</Expandable>

### List LiteLLM

Fetches the list of models from the LiteLLM instance configured for the workspace. Requires a stored LiteLLM integration.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      res = orq.models.list_litellm()

      # Handle response
      print(res)

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    const result = await orq.models.listLitellm();

    console.log(result);
  }

  run();
  ```
</CodeGroup>

### Create OpenAI Like

Creates a custom model backed by any OpenAI-compatible endpoint. The handler probes the target API with the supplied credentials before persisting the model.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      res = orq.models.create_openai_like(api_key="<value>", base_url="https://guilty-cap.org/", display_name="Richard.Beatty45", model_id="<id>", model_type="<value>", region="<value>")

      # Handle response
      print(res)

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    const result = await orq.models.createOpenaiLike({
      apiKey: "<value>",
      baseUrl: "https://guilty-cap.org/",
      displayName: "Richard.Beatty45",
      modelId: "<id>",
      modelType: "<value>",
      region: "<value>",
    });

    console.log(result);
  }

  run();
  ```
</CodeGroup>

<Expandable title="Parameters">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "api_key": str,  # required
        "base_url": str,  # required
        "display_name": str,  # required
        "model_id": str,  # required
        "model_type": str,  # required
        "region": str,  # required
        "cost_per_image": Optional[float],
        "description": Optional[str],
        "has_reasoning": Optional[bool],
        "input_cost": Optional[float],
        "max_tokens": Optional[int],
        "output_cost": Optional[float],
        "supports_image_edit": Optional[bool],
        "supports_strict_tool": Optional[bool],
        "supports_tool_calling": Optional[bool],
        "supports_vision": Optional[bool],
        "temperature": Optional[float],
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      apiKey: string;  // required
      baseUrl: string;  // required
      costPerImage?: number;
      description?: string;
      displayName: string;  // required
      hasReasoning?: boolean;
      inputCost?: number;
      maxTokens?: number;
      modelId: string;  // required
      modelType: string;  // required
      outputCost?: number;
      region: string;  // required
      supportsImageEdit?: boolean;
      supportsStrictTool?: boolean;
      supportsToolCalling?: boolean;
      supportsVision?: boolean;
      temperature?: number;
    }
    ```
  </CodeGroup>
</Expandable>

<Expandable title="Response">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "configuration": {
            "api_key_env": Optional[str],
            "api_version": Optional[str],
            "auth_mode": Optional[str],
            "auth_type": Optional[str],
            "base_url": Optional[str],
            "deployment_name": Optional[str],
            "endpoint": Optional[str],
            "inference_profile_arn": Optional[str],
            "integration_id": Optional[str],
            "is_openai_compatible": Optional[bool],
            "is_tuned_model": Optional[bool],
            "location": Optional[str],
            "project_id": Optional[str],
            "provider": str,
            "region": Optional[str],
            "should_use_beta_features": Optional[bool],
            "subtype": Optional[str],
            "workspace_id": Optional[str],
        },
        "created": date,
        "description": Nullable[str],
        "display_name": str,
        "docs_url": Nullable[str],
        "enabled": bool,
        "enabled_for_endpoints": bool,
        "enabled_for_playground": bool,
        "has_cpu_pricing": bool,
        "has_functions": bool,
        "id": str,
        "input_cost": Nullable[float],
        "input_currency": str,
        "is_active": bool,
        "metadata": {
            "allowed_passthrough_parameters": List[str],
            "autorouter": {  # optional
                "economical_model": Optional[str],
                "id": Optional[str],
                "profile": Optional[str],
                "strong_model": Optional[str],
                "version": Optional[str],
            },
            "cached_image_input_cost": Optional[float],
            "cached_input_cost": Optional[float],
            "chain_of_thought": Optional[bool],
            "context_length": Optional[int],
            "context_window": Optional[int],
            "cost_efficiency_rating": Optional[int],
            "cost_per_image": Optional[float],
            "deprecation_date": Optional[str],
            "embedding_dimensions": Optional[int],
            "extended_context_pricing_mode": Optional[str],
            "extended_context_threshold": Optional[int],
            "generate_audio": Optional[bool],
            "image_input_cost": Optional[float],
            "image_output_cost": Optional[float],
            "image_token_cost": Optional[float],
            "intelligence_rating": Optional[int],
            "is_private": bool,
            "is_realtime": Optional[bool],
            "knowledge_cutoff": Optional[str],
            "max_images_per_request": Optional[int],
            "max_input_tokens": Optional[int],
            "max_output_tokens": Optional[int],
            "million_searches_cost": Optional[float],
            "million_tokens_above_128k_cache_read_cost": Optional[float],
            "million_tokens_above_128k_cache_write_cost": Optional[float],
            "million_tokens_above_128k_input_cost": Optional[float],
            "million_tokens_above_128k_output_cost": Optional[float],
            "million_tokens_above_200k_cache_read_cost": Optional[float],
            "million_tokens_above_200k_cache_write_cost": Optional[float],
            "million_tokens_above_200k_input_cost": Optional[float],
            "million_tokens_above_200k_output_cost": Optional[float],
            "million_tokens_audio_input_cost": Optional[float],
            "million_tokens_audio_output_cost": Optional[float],
            "million_tokens_batches_input_cost": Optional[float],
            "million_tokens_batches_output_cost": Optional[float],
            "million_tokens_cache_read_cost": Optional[float],
            "million_tokens_cache_write_1h_cost": Optional[float],
            "million_tokens_cache_write_5m_cost": Optional[float],
            "million_tokens_cache_write_cost": Optional[float],
            "million_tokens_input_cost": Optional[float],
            "million_tokens_output_cost": Optional[float],
            "million_tokens_reasoning_cost": Optional[float],
            "multilingual": Optional[bool],
            "offline": Optional[bool],
            "per_video_second_cost": Optional[float],
            "per_video_second_cost_1080p": Optional[float],
            "pricing": {  # optional
                "cache_read": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_1h": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_5m": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "input": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "output": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "reasoning": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "variants": {  # optional
                    "cache_read": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_1h": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_5m": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "input": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "output": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "reasoning": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "when": str,
                },
            },
            "reasoning_cost": Optional[float],
            "reasoning_tokens": Optional[int],
            "region": Optional[str],
            "speed_rating": Optional[int],
            "supported_video_aspect_ratios": List[str],
            "supported_video_durations": List[int],
            "supported_video_frame_images": List[str],
            "supported_video_resolutions": List[str],
            "supported_video_sizes": List[str],
            "supports_adaptive_reasoning": Optional[bool],
            "supports_audio_input": Optional[bool],
            "supports_audio_output": Optional[bool],
            "supports_b64_json_response_format": Optional[bool],
            "supports_batch_api": Optional[bool],
            "supports_code_execution": Optional[bool],
            "supports_commercial_use": Optional[bool],
            "supports_computer_use": Optional[bool],
            "supports_developer_message": Optional[bool],
            "supports_direct_cost": Optional[bool],
            "supports_distillation": Optional[bool],
            "supports_extended_thinking": Optional[bool],
            "supports_fine_tuning": Optional[bool],
            "supports_image_edit": Optional[bool],
            "supports_image_input": Optional[bool],
            "supports_image_output": Optional[bool],
            "supports_images": Optional[bool],
            "supports_json_mode_response_format": Optional[bool],
            "supports_json_schema_response_format": Optional[bool],
            "supports_max_completion_tokens": Optional[bool],
            "supports_openai_sdk": Optional[bool],
            "supports_parallel_tool_calls": Optional[bool],
            "supports_pdf_input": Optional[bool],
            "supports_prompt_caching": Optional[bool],
            "supports_reasoning": Optional[bool],
            "supports_reasoning_effort_default": Optional[bool],
            "supports_reasoning_effort_high": Optional[bool],
            "supports_reasoning_effort_low": Optional[bool],
            "supports_reasoning_effort_medium": Optional[bool],
            "supports_reasoning_effort_minimal": Optional[bool],
            "supports_reasoning_effort_none": Optional[bool],
            "supports_reasoning_effort_xhigh": Optional[bool],
            "supports_responses_api": Optional[bool],
            "supports_sampling_params": Optional[bool],
            "supports_streaming": Optional[bool],
            "supports_strict_tool": Optional[bool],
            "supports_structured_outputs": Optional[bool],
            "supports_system_message": Optional[bool],
            "supports_text": Optional[bool],
            "supports_text_input": Optional[bool],
            "supports_text_output": Optional[bool],
            "supports_tool_calling": Optional[bool],
            "supports_tool_choice": Optional[bool],
            "supports_url_context": Optional[bool],
            "supports_url_response_format": Optional[bool],
            "supports_video_input": Optional[bool],
            "supports_video_output": Optional[bool],
            "supports_video_seed": Optional[bool],
            "supports_vision": Optional[bool],
            "supports_web_search": Optional[bool],
            "supports_zdr": Optional[bool],
            "thinking_enforced": Optional[bool],
        },
        "model_developer": Optional[str],
        "model_family": Optional[str],
        "model_id": str,
        "model_type": str,
        "output_cost": Nullable[float],
        "output_currency": str,
        "owner": str,
        "parameters": {
            "config": Dict[str, Any],
            "description": Nullable[str],
            "hints": Optional[str],
            "id": str,
            "is_active": bool,
            "name": str,
            "parameter": str,
            "parameter_type": str,
            "position": Optional[int],
        },
        "pricing_url": Nullable[str],
        "provider": str,
        "ref_id": str,
        "updated": date,
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      configuration: {
        apiKeyEnv?: string;
        apiVersion?: string;
        authMode?: string;
        authType?: string;
        baseUrl?: string;
        deploymentName?: string;
        endpoint?: string;
        inferenceProfileArn?: string;
        integrationId?: string;
        isOpenaiCompatible?: boolean;
        isTunedModel?: boolean;
        location?: string;
        projectId?: string;
        provider: string;
        region?: string;
        shouldUseBetaFeatures?: boolean;
        subtype?: string;
        workspaceId?: string;
      };
      created: Date;
      description: string;
      displayName: string;
      docsUrl: string;
      enabled: boolean;
      enabledForEndpoints: boolean;
      enabledForPlayground: boolean;
      hasCpuPricing: boolean;
      hasFunctions: boolean;
      id: string;
      inputCost: number;
      inputCurrency: string;
      isActive: boolean;
      metadata: {
        allowedPassthroughParameters?: string[];
        autorouter?: {
          economicalModel?: string;
          id?: string;
          profile?: string;
          strongModel?: string;
          version?: string;
        };
        cachedImageInputCost?: number;
        cachedInputCost?: number;
        chainOfThought?: boolean;
        contextLength?: number;
        contextWindow?: number;
        costEfficiencyRating?: number;
        costPerImage?: number;
        deprecationDate?: string;
        embeddingDimensions?: number;
        extendedContextPricingMode?: string;
        extendedContextThreshold?: number;
        generateAudio?: boolean;
        imageInputCost?: number;
        imageOutputCost?: number;
        imageTokenCost?: number;
        intelligenceRating?: number;
        isPrivate: boolean;
        isRealtime?: boolean;
        knowledgeCutoff?: string;
        maxImagesPerRequest?: number;
        maxInputTokens?: number;
        maxOutputTokens?: number;
        millionSearchesCost?: number;
        millionTokensAbove128kCacheReadCost?: number;
        millionTokensAbove128kCacheWriteCost?: number;
        millionTokensAbove128kInputCost?: number;
        millionTokensAbove128kOutputCost?: number;
        millionTokensAbove200kCacheReadCost?: number;
        millionTokensAbove200kCacheWriteCost?: number;
        millionTokensAbove200kInputCost?: number;
        millionTokensAbove200kOutputCost?: number;
        millionTokensAudioInputCost?: number;
        millionTokensAudioOutputCost?: number;
        millionTokensBatchesInputCost?: number;
        millionTokensBatchesOutputCost?: number;
        millionTokensCacheReadCost?: number;
        millionTokensCacheWrite1hCost?: number;
        millionTokensCacheWrite5mCost?: number;
        millionTokensCacheWriteCost?: number;
        millionTokensInputCost?: number;
        millionTokensOutputCost?: number;
        millionTokensReasoningCost?: number;
        multilingual?: boolean;
        offline?: boolean;
        perVideoSecondCost?: number;
        perVideoSecondCost1080p?: number;
        pricing?: {
          cacheRead?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite1h?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite5m?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          input?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          output?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          reasoning?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          variants?: {
            cacheRead?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite1h?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite5m?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            input?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            output?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            reasoning?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            when: string;
          };
        };
        reasoningCost?: number;
        reasoningTokens?: number;
        region?: string;
        speedRating?: number;
        supportedVideoAspectRatios?: string[];
        supportedVideoDurations?: number[];
        supportedVideoFrameImages?: string[];
        supportedVideoResolutions?: string[];
        supportedVideoSizes?: string[];
        supportsAdaptiveReasoning?: boolean;
        supportsAudioInput?: boolean;
        supportsAudioOutput?: boolean;
        supportsB64JsonResponseFormat?: boolean;
        supportsBatchApi?: boolean;
        supportsCodeExecution?: boolean;
        supportsCommercialUse?: boolean;
        supportsComputerUse?: boolean;
        supportsDeveloperMessage?: boolean;
        supportsDirectCost?: boolean;
        supportsDistillation?: boolean;
        supportsExtendedThinking?: boolean;
        supportsFineTuning?: boolean;
        supportsImageEdit?: boolean;
        supportsImageInput?: boolean;
        supportsImageOutput?: boolean;
        supportsImages?: boolean;
        supportsJsonModeResponseFormat?: boolean;
        supportsJsonSchemaResponseFormat?: boolean;
        supportsMaxCompletionTokens?: boolean;
        supportsOpenaiSDK?: boolean;
        supportsParallelToolCalls?: boolean;
        supportsPdfInput?: boolean;
        supportsPromptCaching?: boolean;
        supportsReasoning?: boolean;
        supportsReasoningEffortDefault?: boolean;
        supportsReasoningEffortHigh?: boolean;
        supportsReasoningEffortLow?: boolean;
        supportsReasoningEffortMedium?: boolean;
        supportsReasoningEffortMinimal?: boolean;
        supportsReasoningEffortNone?: boolean;
        supportsReasoningEffortXhigh?: boolean;
        supportsResponsesApi?: boolean;
        supportsSamplingParams?: boolean;
        supportsStreaming?: boolean;
        supportsStrictTool?: boolean;
        supportsStructuredOutputs?: boolean;
        supportsSystemMessage?: boolean;
        supportsText?: boolean;
        supportsTextInput?: boolean;
        supportsTextOutput?: boolean;
        supportsToolCalling?: boolean;
        supportsToolChoice?: boolean;
        supportsUrlContext?: boolean;
        supportsUrlResponseFormat?: boolean;
        supportsVideoInput?: boolean;
        supportsVideoOutput?: boolean;
        supportsVideoSeed?: boolean;
        supportsVision?: boolean;
        supportsWebSearch?: boolean;
        supportsZdr?: boolean;
        thinkingEnforced?: boolean;
      };
      modelDeveloper?: string;
      modelFamily?: string;
      modelId: string;
      modelType: string;
      outputCost: number;
      outputCurrency: string;
      owner: string;
      parameters: {
        config: Record<string, any>;
        description: string;
        hints?: string;
        id: string;
        isActive: boolean;
        name: string;
        parameter: string;
        parameterType: string;
        position?: number;
      };
      pricingUrl: string;
      provider: string;
      refId: string;
      updated: Date;
    }
    ```
  </CodeGroup>
</Expandable>

### Update OpenAI Like

Updates an OpenAI-compatible custom model. Live-re-probes the target API when base\_url or model\_id changes, using the stored encrypted api\_key. Metadata is merged (existing preserved, new overrides).

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      res = orq.models.update_openai_like(id="<id>", display_name="Verlie82", model_type="<value>", region="<value>")

      # Handle response
      print(res)

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    const result = await orq.models.updateOpenaiLike({
      id: "<id>",
      requestBody: {
        displayName: "Verlie82",
        modelType: "<value>",
        region: "<value>",
      },
    });

    console.log(result);
  }

  run();
  ```
</CodeGroup>

<Expandable title="Parameters">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "id": str,  # required
        "display_name": str,  # required
        "model_type": str,  # required
        "region": str,  # required
        "base_url": Optional[str],
        "cost_per_image": Optional[float],
        "description": Optional[str],
        "has_reasoning": Optional[bool],
        "input_cost": Optional[float],
        "max_tokens": Optional[int],
        "model_id": Optional[str],
        "output_cost": Optional[float],
        "supports_image_edit": Optional[bool],
        "supports_strict_tool": Optional[bool],
        "supports_tool_calling": Optional[bool],
        "supports_vision": Optional[bool],
        "temperature": Optional[float],
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      id: string;  // required
      requestBody: {  // required
        baseUrl?: string;
        costPerImage?: number;
        description?: string;
        displayName: string;  // required
        hasReasoning?: boolean;
        inputCost?: number;
        maxTokens?: number;
        modelId?: string;
        modelType: string;  // required
        outputCost?: number;
        region: string;  // required
        supportsImageEdit?: boolean;
        supportsStrictTool?: boolean;
        supportsToolCalling?: boolean;
        supportsVision?: boolean;
        temperature?: number;
      };
    }
    ```
  </CodeGroup>
</Expandable>

<Expandable title="Response">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "configuration": {
            "api_key_env": Optional[str],
            "api_version": Optional[str],
            "auth_mode": Optional[str],
            "auth_type": Optional[str],
            "base_url": Optional[str],
            "deployment_name": Optional[str],
            "endpoint": Optional[str],
            "inference_profile_arn": Optional[str],
            "integration_id": Optional[str],
            "is_openai_compatible": Optional[bool],
            "is_tuned_model": Optional[bool],
            "location": Optional[str],
            "project_id": Optional[str],
            "provider": str,
            "region": Optional[str],
            "should_use_beta_features": Optional[bool],
            "subtype": Optional[str],
            "workspace_id": Optional[str],
        },
        "created": date,
        "description": Nullable[str],
        "display_name": str,
        "docs_url": Nullable[str],
        "enabled": bool,
        "enabled_for_endpoints": bool,
        "enabled_for_playground": bool,
        "has_cpu_pricing": bool,
        "has_functions": bool,
        "id": str,
        "input_cost": Nullable[float],
        "input_currency": str,
        "is_active": bool,
        "metadata": {
            "allowed_passthrough_parameters": List[str],
            "autorouter": {  # optional
                "economical_model": Optional[str],
                "id": Optional[str],
                "profile": Optional[str],
                "strong_model": Optional[str],
                "version": Optional[str],
            },
            "cached_image_input_cost": Optional[float],
            "cached_input_cost": Optional[float],
            "chain_of_thought": Optional[bool],
            "context_length": Optional[int],
            "context_window": Optional[int],
            "cost_efficiency_rating": Optional[int],
            "cost_per_image": Optional[float],
            "deprecation_date": Optional[str],
            "embedding_dimensions": Optional[int],
            "extended_context_pricing_mode": Optional[str],
            "extended_context_threshold": Optional[int],
            "generate_audio": Optional[bool],
            "image_input_cost": Optional[float],
            "image_output_cost": Optional[float],
            "image_token_cost": Optional[float],
            "intelligence_rating": Optional[int],
            "is_private": bool,
            "is_realtime": Optional[bool],
            "knowledge_cutoff": Optional[str],
            "max_images_per_request": Optional[int],
            "max_input_tokens": Optional[int],
            "max_output_tokens": Optional[int],
            "million_searches_cost": Optional[float],
            "million_tokens_above_128k_cache_read_cost": Optional[float],
            "million_tokens_above_128k_cache_write_cost": Optional[float],
            "million_tokens_above_128k_input_cost": Optional[float],
            "million_tokens_above_128k_output_cost": Optional[float],
            "million_tokens_above_200k_cache_read_cost": Optional[float],
            "million_tokens_above_200k_cache_write_cost": Optional[float],
            "million_tokens_above_200k_input_cost": Optional[float],
            "million_tokens_above_200k_output_cost": Optional[float],
            "million_tokens_audio_input_cost": Optional[float],
            "million_tokens_audio_output_cost": Optional[float],
            "million_tokens_batches_input_cost": Optional[float],
            "million_tokens_batches_output_cost": Optional[float],
            "million_tokens_cache_read_cost": Optional[float],
            "million_tokens_cache_write_1h_cost": Optional[float],
            "million_tokens_cache_write_5m_cost": Optional[float],
            "million_tokens_cache_write_cost": Optional[float],
            "million_tokens_input_cost": Optional[float],
            "million_tokens_output_cost": Optional[float],
            "million_tokens_reasoning_cost": Optional[float],
            "multilingual": Optional[bool],
            "offline": Optional[bool],
            "per_video_second_cost": Optional[float],
            "per_video_second_cost_1080p": Optional[float],
            "pricing": {  # optional
                "cache_read": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_1h": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_5m": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "input": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "output": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "reasoning": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "variants": {  # optional
                    "cache_read": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_1h": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_5m": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "input": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "output": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "reasoning": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "when": str,
                },
            },
            "reasoning_cost": Optional[float],
            "reasoning_tokens": Optional[int],
            "region": Optional[str],
            "speed_rating": Optional[int],
            "supported_video_aspect_ratios": List[str],
            "supported_video_durations": List[int],
            "supported_video_frame_images": List[str],
            "supported_video_resolutions": List[str],
            "supported_video_sizes": List[str],
            "supports_adaptive_reasoning": Optional[bool],
            "supports_audio_input": Optional[bool],
            "supports_audio_output": Optional[bool],
            "supports_b64_json_response_format": Optional[bool],
            "supports_batch_api": Optional[bool],
            "supports_code_execution": Optional[bool],
            "supports_commercial_use": Optional[bool],
            "supports_computer_use": Optional[bool],
            "supports_developer_message": Optional[bool],
            "supports_direct_cost": Optional[bool],
            "supports_distillation": Optional[bool],
            "supports_extended_thinking": Optional[bool],
            "supports_fine_tuning": Optional[bool],
            "supports_image_edit": Optional[bool],
            "supports_image_input": Optional[bool],
            "supports_image_output": Optional[bool],
            "supports_images": Optional[bool],
            "supports_json_mode_response_format": Optional[bool],
            "supports_json_schema_response_format": Optional[bool],
            "supports_max_completion_tokens": Optional[bool],
            "supports_openai_sdk": Optional[bool],
            "supports_parallel_tool_calls": Optional[bool],
            "supports_pdf_input": Optional[bool],
            "supports_prompt_caching": Optional[bool],
            "supports_reasoning": Optional[bool],
            "supports_reasoning_effort_default": Optional[bool],
            "supports_reasoning_effort_high": Optional[bool],
            "supports_reasoning_effort_low": Optional[bool],
            "supports_reasoning_effort_medium": Optional[bool],
            "supports_reasoning_effort_minimal": Optional[bool],
            "supports_reasoning_effort_none": Optional[bool],
            "supports_reasoning_effort_xhigh": Optional[bool],
            "supports_responses_api": Optional[bool],
            "supports_sampling_params": Optional[bool],
            "supports_streaming": Optional[bool],
            "supports_strict_tool": Optional[bool],
            "supports_structured_outputs": Optional[bool],
            "supports_system_message": Optional[bool],
            "supports_text": Optional[bool],
            "supports_text_input": Optional[bool],
            "supports_text_output": Optional[bool],
            "supports_tool_calling": Optional[bool],
            "supports_tool_choice": Optional[bool],
            "supports_url_context": Optional[bool],
            "supports_url_response_format": Optional[bool],
            "supports_video_input": Optional[bool],
            "supports_video_output": Optional[bool],
            "supports_video_seed": Optional[bool],
            "supports_vision": Optional[bool],
            "supports_web_search": Optional[bool],
            "supports_zdr": Optional[bool],
            "thinking_enforced": Optional[bool],
        },
        "model_developer": Optional[str],
        "model_family": Optional[str],
        "model_id": str,
        "model_type": str,
        "output_cost": Nullable[float],
        "output_currency": str,
        "owner": str,
        "parameters": {
            "config": Dict[str, Any],
            "description": Nullable[str],
            "hints": Optional[str],
            "id": str,
            "is_active": bool,
            "name": str,
            "parameter": str,
            "parameter_type": str,
            "position": Optional[int],
        },
        "pricing_url": Nullable[str],
        "provider": str,
        "ref_id": str,
        "updated": date,
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      configuration: {
        apiKeyEnv?: string;
        apiVersion?: string;
        authMode?: string;
        authType?: string;
        baseUrl?: string;
        deploymentName?: string;
        endpoint?: string;
        inferenceProfileArn?: string;
        integrationId?: string;
        isOpenaiCompatible?: boolean;
        isTunedModel?: boolean;
        location?: string;
        projectId?: string;
        provider: string;
        region?: string;
        shouldUseBetaFeatures?: boolean;
        subtype?: string;
        workspaceId?: string;
      };
      created: Date;
      description: string;
      displayName: string;
      docsUrl: string;
      enabled: boolean;
      enabledForEndpoints: boolean;
      enabledForPlayground: boolean;
      hasCpuPricing: boolean;
      hasFunctions: boolean;
      id: string;
      inputCost: number;
      inputCurrency: string;
      isActive: boolean;
      metadata: {
        allowedPassthroughParameters?: string[];
        autorouter?: {
          economicalModel?: string;
          id?: string;
          profile?: string;
          strongModel?: string;
          version?: string;
        };
        cachedImageInputCost?: number;
        cachedInputCost?: number;
        chainOfThought?: boolean;
        contextLength?: number;
        contextWindow?: number;
        costEfficiencyRating?: number;
        costPerImage?: number;
        deprecationDate?: string;
        embeddingDimensions?: number;
        extendedContextPricingMode?: string;
        extendedContextThreshold?: number;
        generateAudio?: boolean;
        imageInputCost?: number;
        imageOutputCost?: number;
        imageTokenCost?: number;
        intelligenceRating?: number;
        isPrivate: boolean;
        isRealtime?: boolean;
        knowledgeCutoff?: string;
        maxImagesPerRequest?: number;
        maxInputTokens?: number;
        maxOutputTokens?: number;
        millionSearchesCost?: number;
        millionTokensAbove128kCacheReadCost?: number;
        millionTokensAbove128kCacheWriteCost?: number;
        millionTokensAbove128kInputCost?: number;
        millionTokensAbove128kOutputCost?: number;
        millionTokensAbove200kCacheReadCost?: number;
        millionTokensAbove200kCacheWriteCost?: number;
        millionTokensAbove200kInputCost?: number;
        millionTokensAbove200kOutputCost?: number;
        millionTokensAudioInputCost?: number;
        millionTokensAudioOutputCost?: number;
        millionTokensBatchesInputCost?: number;
        millionTokensBatchesOutputCost?: number;
        millionTokensCacheReadCost?: number;
        millionTokensCacheWrite1hCost?: number;
        millionTokensCacheWrite5mCost?: number;
        millionTokensCacheWriteCost?: number;
        millionTokensInputCost?: number;
        millionTokensOutputCost?: number;
        millionTokensReasoningCost?: number;
        multilingual?: boolean;
        offline?: boolean;
        perVideoSecondCost?: number;
        perVideoSecondCost1080p?: number;
        pricing?: {
          cacheRead?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite1h?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite5m?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          input?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          output?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          reasoning?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          variants?: {
            cacheRead?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite1h?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite5m?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            input?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            output?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            reasoning?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            when: string;
          };
        };
        reasoningCost?: number;
        reasoningTokens?: number;
        region?: string;
        speedRating?: number;
        supportedVideoAspectRatios?: string[];
        supportedVideoDurations?: number[];
        supportedVideoFrameImages?: string[];
        supportedVideoResolutions?: string[];
        supportedVideoSizes?: string[];
        supportsAdaptiveReasoning?: boolean;
        supportsAudioInput?: boolean;
        supportsAudioOutput?: boolean;
        supportsB64JsonResponseFormat?: boolean;
        supportsBatchApi?: boolean;
        supportsCodeExecution?: boolean;
        supportsCommercialUse?: boolean;
        supportsComputerUse?: boolean;
        supportsDeveloperMessage?: boolean;
        supportsDirectCost?: boolean;
        supportsDistillation?: boolean;
        supportsExtendedThinking?: boolean;
        supportsFineTuning?: boolean;
        supportsImageEdit?: boolean;
        supportsImageInput?: boolean;
        supportsImageOutput?: boolean;
        supportsImages?: boolean;
        supportsJsonModeResponseFormat?: boolean;
        supportsJsonSchemaResponseFormat?: boolean;
        supportsMaxCompletionTokens?: boolean;
        supportsOpenaiSDK?: boolean;
        supportsParallelToolCalls?: boolean;
        supportsPdfInput?: boolean;
        supportsPromptCaching?: boolean;
        supportsReasoning?: boolean;
        supportsReasoningEffortDefault?: boolean;
        supportsReasoningEffortHigh?: boolean;
        supportsReasoningEffortLow?: boolean;
        supportsReasoningEffortMedium?: boolean;
        supportsReasoningEffortMinimal?: boolean;
        supportsReasoningEffortNone?: boolean;
        supportsReasoningEffortXhigh?: boolean;
        supportsResponsesApi?: boolean;
        supportsSamplingParams?: boolean;
        supportsStreaming?: boolean;
        supportsStrictTool?: boolean;
        supportsStructuredOutputs?: boolean;
        supportsSystemMessage?: boolean;
        supportsText?: boolean;
        supportsTextInput?: boolean;
        supportsTextOutput?: boolean;
        supportsToolCalling?: boolean;
        supportsToolChoice?: boolean;
        supportsUrlContext?: boolean;
        supportsUrlResponseFormat?: boolean;
        supportsVideoInput?: boolean;
        supportsVideoOutput?: boolean;
        supportsVideoSeed?: boolean;
        supportsVision?: boolean;
        supportsWebSearch?: boolean;
        supportsZdr?: boolean;
        thinkingEnforced?: boolean;
      };
      modelDeveloper?: string;
      modelFamily?: string;
      modelId: string;
      modelType: string;
      outputCost: number;
      outputCurrency: string;
      owner: string;
      parameters: {
        config: Record<string, any>;
        description: string;
        hints?: string;
        id: string;
        isActive: boolean;
        name: string;
        parameter: string;
        parameterType: string;
        position?: number;
      };
      pricingUrl: string;
      provider: string;
      refId: string;
      updated: Date;
    }
    ```
  </CodeGroup>
</Expandable>

### Validate a Model

Validates a provider endpoint by performing a minimal live probe. Currently supports Azure OpenAI. Response includes the resolved region, whether the model is known to Orq, and either the full model document or a synthesized default.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      orq.models.validate(api_key="<value>", provider="<value>")

      # Use the SDK ...

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    await orq.models.validate({
      apiKey: "<value>",
      provider: "<value>",
    });

  }

  run();
  ```
</CodeGroup>

<Expandable title="Parameters">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "api_key": str,  # required
        "provider": str,  # required
        "api_version": Optional[str],
        "base_url": Optional[str],
        "deployment_name": Optional[str],
        "endpoint": Optional[str],
        "subtype": Optional[str],
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      apiKey: string;  // required
      apiVersion?: string;
      baseUrl?: string;
      deploymentName?: string;
      endpoint?: string;
      provider: string;  // required
      subtype?: string;
    }
    ```
  </CodeGroup>
</Expandable>

### Create Vertex

Registers a Google Vertex AI model as a custom model for the workspace. The service account credentials are probed against Vertex AI with a minimal GenerateContent call before persisting.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import orq_ai_sdk
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      res = orq.models.create_vertex(configuration=orq_ai_sdk.VertexConfiguration(
          location="<value>",
          model_configuration=orq_ai_sdk.VertexModelConfiguration(
              capabilities=orq_ai_sdk.VertexCapabilities(
                  structured_output=True,
                  support_tool_calling=False,
                  vision=True,
              ),
              id="<id>",
              input_cost=6100.6,
              output_cost=4860.06,
              parameters=orq_ai_sdk.VertexParameters(
                  max_tokens=orq_ai_sdk.VertexParamRangeInt(
                      max=816266,
                      min=370614,
                  ),
                  temperature=orq_ai_sdk.VertexParamRange(
                      max=1989.61,
                      min=8564.64,
                  ),
                  top_p=orq_ai_sdk.VertexParamRange(
                      max=3250.24,
                      min=8051.01,
                  ),
              ),
          ),
          project_id="<id>",
          service_account={
              "key": "<value>",
              "key1": "<value>",
              "key2": "<value>",
          },
      ), display_name="Birdie_Bailey-Abernathy")

      # Handle response
      print(res)

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    const result = await orq.models.createVertex({
      configuration: {
        location: "<value>",
        modelConfiguration: {
          capabilities: {
            structuredOutput: true,
            supportToolCalling: false,
            vision: true,
          },
          id: "<id>",
          inputCost: 6100.6,
          outputCost: 4860.06,
          parameters: {
            maxTokens: {
              max: 816266,
              min: 370614,
            },
            temperature: {
              max: 1989.61,
              min: 8564.64,
            },
            topP: {
              max: 3250.24,
              min: 8051.01,
            },
          },
        },
        projectId: "<id>",
        serviceAccount: {
          "key": "<value>",
          "key1": "<value>",
          "key2": "<value>",
        },
      },
      displayName: "Birdie_Bailey-Abernathy",
    });

    console.log(result);
  }

  run();
  ```
</CodeGroup>

<Expandable title="Parameters">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "configuration": {  # required
            "location": str,  # required
            "model_configuration": {  # required
                "capabilities": {  # required
                    "structured_output": bool,  # required
                    "support_tool_calling": bool,  # required
                    "vision": bool,  # required
                },
                "id": str,  # required
                "input_cost": float,  # required
                "output_cost": float,  # required
                "parameters": {  # required
                    "max_tokens": {  # required
                        "max": int,  # required
                        "min": int,  # required
                    },
                    "temperature": {  # required
                        "max": float,  # required
                        "min": float,  # required
                    },
                    "top_p": {  # required
                        "max": float,  # required
                        "min": float,  # required
                    },
                },
            },
            "project_id": str,  # required
            "service_account": Dict[str, Any],  # required
        },
        "display_name": str,  # required
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      configuration: {  // required
        location: string;  // required
        modelConfiguration: {  // required
          capabilities: {  // required
            structuredOutput: boolean;  // required
            supportToolCalling: boolean;  // required
            vision: boolean;  // required
          };
          id: string;  // required
          inputCost: number;  // required
          outputCost: number;  // required
          parameters: {  // required
            maxTokens: {  // required
              max: number;  // required
              min: number;  // required
            };
            temperature: {  // required
              max: number;  // required
              min: number;  // required
            };
            topP: {  // required
              max: number;  // required
              min: number;  // required
            };
          };
        };
        projectId: string;  // required
        serviceAccount: Record<string, any>;  // required
      };
      displayName: string;  // required
    }
    ```
  </CodeGroup>
</Expandable>

<Expandable title="Response">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "configuration": {
            "api_key_env": Optional[str],
            "api_version": Optional[str],
            "auth_mode": Optional[str],
            "auth_type": Optional[str],
            "base_url": Optional[str],
            "deployment_name": Optional[str],
            "endpoint": Optional[str],
            "inference_profile_arn": Optional[str],
            "integration_id": Optional[str],
            "is_openai_compatible": Optional[bool],
            "is_tuned_model": Optional[bool],
            "location": Optional[str],
            "project_id": Optional[str],
            "provider": str,
            "region": Optional[str],
            "should_use_beta_features": Optional[bool],
            "subtype": Optional[str],
            "workspace_id": Optional[str],
        },
        "created": date,
        "description": Nullable[str],
        "display_name": str,
        "docs_url": Nullable[str],
        "enabled": bool,
        "enabled_for_endpoints": bool,
        "enabled_for_playground": bool,
        "has_cpu_pricing": bool,
        "has_functions": bool,
        "id": str,
        "input_cost": Nullable[float],
        "input_currency": str,
        "is_active": bool,
        "metadata": {
            "allowed_passthrough_parameters": List[str],
            "autorouter": {  # optional
                "economical_model": Optional[str],
                "id": Optional[str],
                "profile": Optional[str],
                "strong_model": Optional[str],
                "version": Optional[str],
            },
            "cached_image_input_cost": Optional[float],
            "cached_input_cost": Optional[float],
            "chain_of_thought": Optional[bool],
            "context_length": Optional[int],
            "context_window": Optional[int],
            "cost_efficiency_rating": Optional[int],
            "cost_per_image": Optional[float],
            "deprecation_date": Optional[str],
            "embedding_dimensions": Optional[int],
            "extended_context_pricing_mode": Optional[str],
            "extended_context_threshold": Optional[int],
            "generate_audio": Optional[bool],
            "image_input_cost": Optional[float],
            "image_output_cost": Optional[float],
            "image_token_cost": Optional[float],
            "intelligence_rating": Optional[int],
            "is_private": bool,
            "is_realtime": Optional[bool],
            "knowledge_cutoff": Optional[str],
            "max_images_per_request": Optional[int],
            "max_input_tokens": Optional[int],
            "max_output_tokens": Optional[int],
            "million_searches_cost": Optional[float],
            "million_tokens_above_128k_cache_read_cost": Optional[float],
            "million_tokens_above_128k_cache_write_cost": Optional[float],
            "million_tokens_above_128k_input_cost": Optional[float],
            "million_tokens_above_128k_output_cost": Optional[float],
            "million_tokens_above_200k_cache_read_cost": Optional[float],
            "million_tokens_above_200k_cache_write_cost": Optional[float],
            "million_tokens_above_200k_input_cost": Optional[float],
            "million_tokens_above_200k_output_cost": Optional[float],
            "million_tokens_audio_input_cost": Optional[float],
            "million_tokens_audio_output_cost": Optional[float],
            "million_tokens_batches_input_cost": Optional[float],
            "million_tokens_batches_output_cost": Optional[float],
            "million_tokens_cache_read_cost": Optional[float],
            "million_tokens_cache_write_1h_cost": Optional[float],
            "million_tokens_cache_write_5m_cost": Optional[float],
            "million_tokens_cache_write_cost": Optional[float],
            "million_tokens_input_cost": Optional[float],
            "million_tokens_output_cost": Optional[float],
            "million_tokens_reasoning_cost": Optional[float],
            "multilingual": Optional[bool],
            "offline": Optional[bool],
            "per_video_second_cost": Optional[float],
            "per_video_second_cost_1080p": Optional[float],
            "pricing": {  # optional
                "cache_read": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_1h": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_5m": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "input": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "output": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "reasoning": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "variants": {  # optional
                    "cache_read": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_1h": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_5m": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "input": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "output": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "reasoning": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "when": str,
                },
            },
            "reasoning_cost": Optional[float],
            "reasoning_tokens": Optional[int],
            "region": Optional[str],
            "speed_rating": Optional[int],
            "supported_video_aspect_ratios": List[str],
            "supported_video_durations": List[int],
            "supported_video_frame_images": List[str],
            "supported_video_resolutions": List[str],
            "supported_video_sizes": List[str],
            "supports_adaptive_reasoning": Optional[bool],
            "supports_audio_input": Optional[bool],
            "supports_audio_output": Optional[bool],
            "supports_b64_json_response_format": Optional[bool],
            "supports_batch_api": Optional[bool],
            "supports_code_execution": Optional[bool],
            "supports_commercial_use": Optional[bool],
            "supports_computer_use": Optional[bool],
            "supports_developer_message": Optional[bool],
            "supports_direct_cost": Optional[bool],
            "supports_distillation": Optional[bool],
            "supports_extended_thinking": Optional[bool],
            "supports_fine_tuning": Optional[bool],
            "supports_image_edit": Optional[bool],
            "supports_image_input": Optional[bool],
            "supports_image_output": Optional[bool],
            "supports_images": Optional[bool],
            "supports_json_mode_response_format": Optional[bool],
            "supports_json_schema_response_format": Optional[bool],
            "supports_max_completion_tokens": Optional[bool],
            "supports_openai_sdk": Optional[bool],
            "supports_parallel_tool_calls": Optional[bool],
            "supports_pdf_input": Optional[bool],
            "supports_prompt_caching": Optional[bool],
            "supports_reasoning": Optional[bool],
            "supports_reasoning_effort_default": Optional[bool],
            "supports_reasoning_effort_high": Optional[bool],
            "supports_reasoning_effort_low": Optional[bool],
            "supports_reasoning_effort_medium": Optional[bool],
            "supports_reasoning_effort_minimal": Optional[bool],
            "supports_reasoning_effort_none": Optional[bool],
            "supports_reasoning_effort_xhigh": Optional[bool],
            "supports_responses_api": Optional[bool],
            "supports_sampling_params": Optional[bool],
            "supports_streaming": Optional[bool],
            "supports_strict_tool": Optional[bool],
            "supports_structured_outputs": Optional[bool],
            "supports_system_message": Optional[bool],
            "supports_text": Optional[bool],
            "supports_text_input": Optional[bool],
            "supports_text_output": Optional[bool],
            "supports_tool_calling": Optional[bool],
            "supports_tool_choice": Optional[bool],
            "supports_url_context": Optional[bool],
            "supports_url_response_format": Optional[bool],
            "supports_video_input": Optional[bool],
            "supports_video_output": Optional[bool],
            "supports_video_seed": Optional[bool],
            "supports_vision": Optional[bool],
            "supports_web_search": Optional[bool],
            "supports_zdr": Optional[bool],
            "thinking_enforced": Optional[bool],
        },
        "model_developer": Optional[str],
        "model_family": Optional[str],
        "model_id": str,
        "model_type": str,
        "output_cost": Nullable[float],
        "output_currency": str,
        "owner": str,
        "parameters": {
            "config": Dict[str, Any],
            "description": Nullable[str],
            "hints": Optional[str],
            "id": str,
            "is_active": bool,
            "name": str,
            "parameter": str,
            "parameter_type": str,
            "position": Optional[int],
        },
        "pricing_url": Nullable[str],
        "provider": str,
        "ref_id": str,
        "updated": date,
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      configuration: {
        apiKeyEnv?: string;
        apiVersion?: string;
        authMode?: string;
        authType?: string;
        baseUrl?: string;
        deploymentName?: string;
        endpoint?: string;
        inferenceProfileArn?: string;
        integrationId?: string;
        isOpenaiCompatible?: boolean;
        isTunedModel?: boolean;
        location?: string;
        projectId?: string;
        provider: string;
        region?: string;
        shouldUseBetaFeatures?: boolean;
        subtype?: string;
        workspaceId?: string;
      };
      created: Date;
      description: string;
      displayName: string;
      docsUrl: string;
      enabled: boolean;
      enabledForEndpoints: boolean;
      enabledForPlayground: boolean;
      hasCpuPricing: boolean;
      hasFunctions: boolean;
      id: string;
      inputCost: number;
      inputCurrency: string;
      isActive: boolean;
      metadata: {
        allowedPassthroughParameters?: string[];
        autorouter?: {
          economicalModel?: string;
          id?: string;
          profile?: string;
          strongModel?: string;
          version?: string;
        };
        cachedImageInputCost?: number;
        cachedInputCost?: number;
        chainOfThought?: boolean;
        contextLength?: number;
        contextWindow?: number;
        costEfficiencyRating?: number;
        costPerImage?: number;
        deprecationDate?: string;
        embeddingDimensions?: number;
        extendedContextPricingMode?: string;
        extendedContextThreshold?: number;
        generateAudio?: boolean;
        imageInputCost?: number;
        imageOutputCost?: number;
        imageTokenCost?: number;
        intelligenceRating?: number;
        isPrivate: boolean;
        isRealtime?: boolean;
        knowledgeCutoff?: string;
        maxImagesPerRequest?: number;
        maxInputTokens?: number;
        maxOutputTokens?: number;
        millionSearchesCost?: number;
        millionTokensAbove128kCacheReadCost?: number;
        millionTokensAbove128kCacheWriteCost?: number;
        millionTokensAbove128kInputCost?: number;
        millionTokensAbove128kOutputCost?: number;
        millionTokensAbove200kCacheReadCost?: number;
        millionTokensAbove200kCacheWriteCost?: number;
        millionTokensAbove200kInputCost?: number;
        millionTokensAbove200kOutputCost?: number;
        millionTokensAudioInputCost?: number;
        millionTokensAudioOutputCost?: number;
        millionTokensBatchesInputCost?: number;
        millionTokensBatchesOutputCost?: number;
        millionTokensCacheReadCost?: number;
        millionTokensCacheWrite1hCost?: number;
        millionTokensCacheWrite5mCost?: number;
        millionTokensCacheWriteCost?: number;
        millionTokensInputCost?: number;
        millionTokensOutputCost?: number;
        millionTokensReasoningCost?: number;
        multilingual?: boolean;
        offline?: boolean;
        perVideoSecondCost?: number;
        perVideoSecondCost1080p?: number;
        pricing?: {
          cacheRead?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite1h?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite5m?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          input?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          output?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          reasoning?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          variants?: {
            cacheRead?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite1h?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite5m?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            input?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            output?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            reasoning?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            when: string;
          };
        };
        reasoningCost?: number;
        reasoningTokens?: number;
        region?: string;
        speedRating?: number;
        supportedVideoAspectRatios?: string[];
        supportedVideoDurations?: number[];
        supportedVideoFrameImages?: string[];
        supportedVideoResolutions?: string[];
        supportedVideoSizes?: string[];
        supportsAdaptiveReasoning?: boolean;
        supportsAudioInput?: boolean;
        supportsAudioOutput?: boolean;
        supportsB64JsonResponseFormat?: boolean;
        supportsBatchApi?: boolean;
        supportsCodeExecution?: boolean;
        supportsCommercialUse?: boolean;
        supportsComputerUse?: boolean;
        supportsDeveloperMessage?: boolean;
        supportsDirectCost?: boolean;
        supportsDistillation?: boolean;
        supportsExtendedThinking?: boolean;
        supportsFineTuning?: boolean;
        supportsImageEdit?: boolean;
        supportsImageInput?: boolean;
        supportsImageOutput?: boolean;
        supportsImages?: boolean;
        supportsJsonModeResponseFormat?: boolean;
        supportsJsonSchemaResponseFormat?: boolean;
        supportsMaxCompletionTokens?: boolean;
        supportsOpenaiSDK?: boolean;
        supportsParallelToolCalls?: boolean;
        supportsPdfInput?: boolean;
        supportsPromptCaching?: boolean;
        supportsReasoning?: boolean;
        supportsReasoningEffortDefault?: boolean;
        supportsReasoningEffortHigh?: boolean;
        supportsReasoningEffortLow?: boolean;
        supportsReasoningEffortMedium?: boolean;
        supportsReasoningEffortMinimal?: boolean;
        supportsReasoningEffortNone?: boolean;
        supportsReasoningEffortXhigh?: boolean;
        supportsResponsesApi?: boolean;
        supportsSamplingParams?: boolean;
        supportsStreaming?: boolean;
        supportsStrictTool?: boolean;
        supportsStructuredOutputs?: boolean;
        supportsSystemMessage?: boolean;
        supportsText?: boolean;
        supportsTextInput?: boolean;
        supportsTextOutput?: boolean;
        supportsToolCalling?: boolean;
        supportsToolChoice?: boolean;
        supportsUrlContext?: boolean;
        supportsUrlResponseFormat?: boolean;
        supportsVideoInput?: boolean;
        supportsVideoOutput?: boolean;
        supportsVideoSeed?: boolean;
        supportsVision?: boolean;
        supportsWebSearch?: boolean;
        supportsZdr?: boolean;
        thinkingEnforced?: boolean;
      };
      modelDeveloper?: string;
      modelFamily?: string;
      modelId: string;
      modelType: string;
      outputCost: number;
      outputCurrency: string;
      owner: string;
      parameters: {
        config: Record<string, any>;
        description: string;
        hints?: string;
        id: string;
        isActive: boolean;
        name: string;
        parameter: string;
        parameterType: string;
        position?: number;
      };
      pricingUrl: string;
      provider: string;
      refId: string;
      updated: Date;
    }
    ```
  </CodeGroup>
</Expandable>

### Delete a Model

Deletes a custom model from the workspace. System models cannot be deleted. Returns 200 with an explanatory message if the model is a system model or is still referenced by experiments.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      orq.models.delete(id="<id>")

      # Use the SDK ...

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    await orq.models.delete({
      id: "<id>",
    });

  }

  run();
  ```
</CodeGroup>

<Expandable title="Parameters">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "id": str,  # required
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      id: string;  // required
    }
    ```
  </CodeGroup>
</Expandable>

### Update a Model

Updates a custom model. Only fields present in the request body are modified, except for `metadata` and `parameters`, which are fully replaced when present (preserved from the legacy handler's behavior).

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      res = orq.models.update(id="<id>")

      # Handle response
      print(res)

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    const result = await orq.models.update({
      id: "<id>",
      requestBody: {},
    });

    console.log(result);
  }

  run();
  ```
</CodeGroup>

<Expandable title="Parameters">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "id": str,  # required
        "display_name": Optional[str],
        "has_functions": Optional[bool],
        "input_cost": Optional[float],
        "metadata": {  # optional
            "allowed_passthrough_parameters": List[str],
            "autorouter": {  # optional
                "economical_model": Optional[str],
                "id": Optional[str],
                "profile": Optional[str],
                "strong_model": Optional[str],
                "version": Optional[str],
            },
            "cached_image_input_cost": Optional[float],
            "cached_input_cost": Optional[float],
            "chain_of_thought": Optional[bool],
            "context_length": Optional[int],
            "context_window": Optional[int],
            "cost_efficiency_rating": Optional[int],
            "cost_per_image": Optional[float],
            "deprecation_date": Optional[str],
            "embedding_dimensions": Optional[int],
            "extended_context_pricing_mode": Optional[str],
            "extended_context_threshold": Optional[int],
            "generate_audio": Optional[bool],
            "image_input_cost": Optional[float],
            "image_output_cost": Optional[float],
            "image_token_cost": Optional[float],
            "intelligence_rating": Optional[int],
            "is_private": bool,  # required
            "is_realtime": Optional[bool],
            "knowledge_cutoff": Optional[str],
            "max_images_per_request": Optional[int],
            "max_input_tokens": Optional[int],
            "max_output_tokens": Optional[int],
            "million_searches_cost": Optional[float],
            "million_tokens_above_128k_cache_read_cost": Optional[float],
            "million_tokens_above_128k_cache_write_cost": Optional[float],
            "million_tokens_above_128k_input_cost": Optional[float],
            "million_tokens_above_128k_output_cost": Optional[float],
            "million_tokens_above_200k_cache_read_cost": Optional[float],
            "million_tokens_above_200k_cache_write_cost": Optional[float],
            "million_tokens_above_200k_input_cost": Optional[float],
            "million_tokens_above_200k_output_cost": Optional[float],
            "million_tokens_audio_input_cost": Optional[float],
            "million_tokens_audio_output_cost": Optional[float],
            "million_tokens_batches_input_cost": Optional[float],
            "million_tokens_batches_output_cost": Optional[float],
            "million_tokens_cache_read_cost": Optional[float],
            "million_tokens_cache_write_1h_cost": Optional[float],
            "million_tokens_cache_write_5m_cost": Optional[float],
            "million_tokens_cache_write_cost": Optional[float],
            "million_tokens_input_cost": Optional[float],
            "million_tokens_output_cost": Optional[float],
            "million_tokens_reasoning_cost": Optional[float],
            "multilingual": Optional[bool],
            "offline": Optional[bool],
            "per_video_second_cost": Optional[float],
            "per_video_second_cost_1080p": Optional[float],
            "pricing": {  # optional
                "cache_read": {  # optional
                    "cost": float,  # required
                    "currency": str,  # required
                    "per": int,  # required
                    "unit": str,  # required
                },
                "cache_write_1h": {  # optional
                    "cost": float,  # required
                    "currency": str,  # required
                    "per": int,  # required
                    "unit": str,  # required
                },
                "cache_write_5m": {  # optional
                    "cost": float,  # required
                    "currency": str,  # required
                    "per": int,  # required
                    "unit": str,  # required
                },
                "input": {  # optional
                    "cost": float,  # required
                    "currency": str,  # required
                    "per": int,  # required
                    "unit": str,  # required
                },
                "output": {  # optional
                    "cost": float,  # required
                    "currency": str,  # required
                    "per": int,  # required
                    "unit": str,  # required
                },
                "reasoning": {  # optional
                    "cost": float,  # required
                    "currency": str,  # required
                    "per": int,  # required
                    "unit": str,  # required
                },
                "variants": {  # optional
                    "cache_read": {  # optional
                        "cost": float,  # required
                        "currency": str,  # required
                        "per": int,  # required
                        "unit": str,  # required
                    },
                    "cache_write_1h": {  # optional
                        "cost": float,  # required
                        "currency": str,  # required
                        "per": int,  # required
                        "unit": str,  # required
                    },
                    "cache_write_5m": {  # optional
                        "cost": float,  # required
                        "currency": str,  # required
                        "per": int,  # required
                        "unit": str,  # required
                    },
                    "input": {  # optional
                        "cost": float,  # required
                        "currency": str,  # required
                        "per": int,  # required
                        "unit": str,  # required
                    },
                    "output": {  # optional
                        "cost": float,  # required
                        "currency": str,  # required
                        "per": int,  # required
                        "unit": str,  # required
                    },
                    "reasoning": {  # optional
                        "cost": float,  # required
                        "currency": str,  # required
                        "per": int,  # required
                        "unit": str,  # required
                    },
                    "when": str,  # required
                },
            },
            "reasoning_cost": Optional[float],
            "reasoning_tokens": Optional[int],
            "region": Optional[str],
            "speed_rating": Optional[int],
            "supported_video_aspect_ratios": List[str],
            "supported_video_durations": List[int],
            "supported_video_frame_images": List[str],
            "supported_video_resolutions": List[str],
            "supported_video_sizes": List[str],
            "supports_adaptive_reasoning": Optional[bool],
            "supports_audio_input": Optional[bool],
            "supports_audio_output": Optional[bool],
            "supports_b64_json_response_format": Optional[bool],
            "supports_batch_api": Optional[bool],
            "supports_code_execution": Optional[bool],
            "supports_commercial_use": Optional[bool],
            "supports_computer_use": Optional[bool],
            "supports_developer_message": Optional[bool],
            "supports_direct_cost": Optional[bool],
            "supports_distillation": Optional[bool],
            "supports_extended_thinking": Optional[bool],
            "supports_fine_tuning": Optional[bool],
            "supports_image_edit": Optional[bool],
            "supports_image_input": Optional[bool],
            "supports_image_output": Optional[bool],
            "supports_images": Optional[bool],
            "supports_json_mode_response_format": Optional[bool],
            "supports_json_schema_response_format": Optional[bool],
            "supports_max_completion_tokens": Optional[bool],
            "supports_openai_sdk": Optional[bool],
            "supports_parallel_tool_calls": Optional[bool],
            "supports_pdf_input": Optional[bool],
            "supports_prompt_caching": Optional[bool],
            "supports_reasoning": Optional[bool],
            "supports_reasoning_effort_default": Optional[bool],
            "supports_reasoning_effort_high": Optional[bool],
            "supports_reasoning_effort_low": Optional[bool],
            "supports_reasoning_effort_medium": Optional[bool],
            "supports_reasoning_effort_minimal": Optional[bool],
            "supports_reasoning_effort_none": Optional[bool],
            "supports_reasoning_effort_xhigh": Optional[bool],
            "supports_responses_api": Optional[bool],
            "supports_sampling_params": Optional[bool],
            "supports_streaming": Optional[bool],
            "supports_strict_tool": Optional[bool],
            "supports_structured_outputs": Optional[bool],
            "supports_system_message": Optional[bool],
            "supports_text": Optional[bool],
            "supports_text_input": Optional[bool],
            "supports_text_output": Optional[bool],
            "supports_tool_calling": Optional[bool],
            "supports_tool_choice": Optional[bool],
            "supports_url_context": Optional[bool],
            "supports_url_response_format": Optional[bool],
            "supports_video_input": Optional[bool],
            "supports_video_output": Optional[bool],
            "supports_video_seed": Optional[bool],
            "supports_vision": Optional[bool],
            "supports_web_search": Optional[bool],
            "supports_zdr": Optional[bool],
            "thinking_enforced": Optional[bool],
        },
        "model_type": Optional[str],
        "output_cost": Optional[float],
        "parameters": {  # optional
            "config": Dict[str, Any],
            "description": Optional[str],
            "hints": Optional[str],
            "id": str,  # required
            "is_active": Optional[bool],
            "name": Optional[str],
            "parameter": Optional[str],
            "parameter_type": Optional[str],
            "position": Optional[int],
        },
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      id: string;  // required
      requestBody: {  // required
        displayName?: string;
        hasFunctions?: boolean;
        inputCost?: number;
        metadata?: {
          allowedPassthroughParameters?: string[];
          autorouter?: {
            economicalModel?: string;
            id?: string;
            profile?: string;
            strongModel?: string;
            version?: string;
          };
          cachedImageInputCost?: number;
          cachedInputCost?: number;
          chainOfThought?: boolean;
          contextLength?: number;
          contextWindow?: number;
          costEfficiencyRating?: number;
          costPerImage?: number;
          deprecationDate?: string;
          embeddingDimensions?: number;
          extendedContextPricingMode?: string;
          extendedContextThreshold?: number;
          generateAudio?: boolean;
          imageInputCost?: number;
          imageOutputCost?: number;
          imageTokenCost?: number;
          intelligenceRating?: number;
          isPrivate: boolean;  // required
          isRealtime?: boolean;
          knowledgeCutoff?: string;
          maxImagesPerRequest?: number;
          maxInputTokens?: number;
          maxOutputTokens?: number;
          millionSearchesCost?: number;
          millionTokensAbove128kCacheReadCost?: number;
          millionTokensAbove128kCacheWriteCost?: number;
          millionTokensAbove128kInputCost?: number;
          millionTokensAbove128kOutputCost?: number;
          millionTokensAbove200kCacheReadCost?: number;
          millionTokensAbove200kCacheWriteCost?: number;
          millionTokensAbove200kInputCost?: number;
          millionTokensAbove200kOutputCost?: number;
          millionTokensAudioInputCost?: number;
          millionTokensAudioOutputCost?: number;
          millionTokensBatchesInputCost?: number;
          millionTokensBatchesOutputCost?: number;
          millionTokensCacheReadCost?: number;
          millionTokensCacheWrite1hCost?: number;
          millionTokensCacheWrite5mCost?: number;
          millionTokensCacheWriteCost?: number;
          millionTokensInputCost?: number;
          millionTokensOutputCost?: number;
          millionTokensReasoningCost?: number;
          multilingual?: boolean;
          offline?: boolean;
          perVideoSecondCost?: number;
          perVideoSecondCost1080p?: number;
          pricing?: {
            cacheRead?: {
              cost: number;  // required
              currency: string;  // required
              per: number;  // required
              unit: string;  // required
            };
            cacheWrite1h?: {
              cost: number;  // required
              currency: string;  // required
              per: number;  // required
              unit: string;  // required
            };
            cacheWrite5m?: {
              cost: number;  // required
              currency: string;  // required
              per: number;  // required
              unit: string;  // required
            };
            input?: {
              cost: number;  // required
              currency: string;  // required
              per: number;  // required
              unit: string;  // required
            };
            output?: {
              cost: number;  // required
              currency: string;  // required
              per: number;  // required
              unit: string;  // required
            };
            reasoning?: {
              cost: number;  // required
              currency: string;  // required
              per: number;  // required
              unit: string;  // required
            };
            variants?: {
              cacheRead?: {
                cost: number;  // required
                currency: string;  // required
                per: number;  // required
                unit: string;  // required
              };
              cacheWrite1h?: {
                cost: number;  // required
                currency: string;  // required
                per: number;  // required
                unit: string;  // required
              };
              cacheWrite5m?: {
                cost: number;  // required
                currency: string;  // required
                per: number;  // required
                unit: string;  // required
              };
              input?: {
                cost: number;  // required
                currency: string;  // required
                per: number;  // required
                unit: string;  // required
              };
              output?: {
                cost: number;  // required
                currency: string;  // required
                per: number;  // required
                unit: string;  // required
              };
              reasoning?: {
                cost: number;  // required
                currency: string;  // required
                per: number;  // required
                unit: string;  // required
              };
              when: string;  // required
            };
          };
          reasoningCost?: number;
          reasoningTokens?: number;
          region?: string;
          speedRating?: number;
          supportedVideoAspectRatios?: string[];
          supportedVideoDurations?: number[];
          supportedVideoFrameImages?: string[];
          supportedVideoResolutions?: string[];
          supportedVideoSizes?: string[];
          supportsAdaptiveReasoning?: boolean;
          supportsAudioInput?: boolean;
          supportsAudioOutput?: boolean;
          supportsB64JsonResponseFormat?: boolean;
          supportsBatchApi?: boolean;
          supportsCodeExecution?: boolean;
          supportsCommercialUse?: boolean;
          supportsComputerUse?: boolean;
          supportsDeveloperMessage?: boolean;
          supportsDirectCost?: boolean;
          supportsDistillation?: boolean;
          supportsExtendedThinking?: boolean;
          supportsFineTuning?: boolean;
          supportsImageEdit?: boolean;
          supportsImageInput?: boolean;
          supportsImageOutput?: boolean;
          supportsImages?: boolean;
          supportsJsonModeResponseFormat?: boolean;
          supportsJsonSchemaResponseFormat?: boolean;
          supportsMaxCompletionTokens?: boolean;
          supportsOpenaiSDK?: boolean;
          supportsParallelToolCalls?: boolean;
          supportsPdfInput?: boolean;
          supportsPromptCaching?: boolean;
          supportsReasoning?: boolean;
          supportsReasoningEffortDefault?: boolean;
          supportsReasoningEffortHigh?: boolean;
          supportsReasoningEffortLow?: boolean;
          supportsReasoningEffortMedium?: boolean;
          supportsReasoningEffortMinimal?: boolean;
          supportsReasoningEffortNone?: boolean;
          supportsReasoningEffortXhigh?: boolean;
          supportsResponsesApi?: boolean;
          supportsSamplingParams?: boolean;
          supportsStreaming?: boolean;
          supportsStrictTool?: boolean;
          supportsStructuredOutputs?: boolean;
          supportsSystemMessage?: boolean;
          supportsText?: boolean;
          supportsTextInput?: boolean;
          supportsTextOutput?: boolean;
          supportsToolCalling?: boolean;
          supportsToolChoice?: boolean;
          supportsUrlContext?: boolean;
          supportsUrlResponseFormat?: boolean;
          supportsVideoInput?: boolean;
          supportsVideoOutput?: boolean;
          supportsVideoSeed?: boolean;
          supportsVision?: boolean;
          supportsWebSearch?: boolean;
          supportsZdr?: boolean;
          thinkingEnforced?: boolean;
        };
        modelType?: string;
        outputCost?: number;
        parameters?: {
          config?: Record<string, any>;
          description?: string;
          hints?: string;
          id: string;  // required
          isActive?: boolean;
          name?: string;
          parameter?: string;
          parameterType?: string;
          position?: number;
        };
      };
    }
    ```
  </CodeGroup>
</Expandable>

<Expandable title="Response">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "configuration": {
            "api_key_env": Optional[str],
            "api_version": Optional[str],
            "auth_mode": Optional[str],
            "auth_type": Optional[str],
            "base_url": Optional[str],
            "deployment_name": Optional[str],
            "endpoint": Optional[str],
            "inference_profile_arn": Optional[str],
            "integration_id": Optional[str],
            "is_openai_compatible": Optional[bool],
            "is_tuned_model": Optional[bool],
            "location": Optional[str],
            "project_id": Optional[str],
            "provider": str,
            "region": Optional[str],
            "should_use_beta_features": Optional[bool],
            "subtype": Optional[str],
            "workspace_id": Optional[str],
        },
        "created": date,
        "description": Nullable[str],
        "display_name": str,
        "docs_url": Nullable[str],
        "enabled": bool,
        "enabled_for_endpoints": bool,
        "enabled_for_playground": bool,
        "has_cpu_pricing": bool,
        "has_functions": bool,
        "id": str,
        "input_cost": Nullable[float],
        "input_currency": str,
        "is_active": bool,
        "metadata": {
            "allowed_passthrough_parameters": List[str],
            "autorouter": {  # optional
                "economical_model": Optional[str],
                "id": Optional[str],
                "profile": Optional[str],
                "strong_model": Optional[str],
                "version": Optional[str],
            },
            "cached_image_input_cost": Optional[float],
            "cached_input_cost": Optional[float],
            "chain_of_thought": Optional[bool],
            "context_length": Optional[int],
            "context_window": Optional[int],
            "cost_efficiency_rating": Optional[int],
            "cost_per_image": Optional[float],
            "deprecation_date": Optional[str],
            "embedding_dimensions": Optional[int],
            "extended_context_pricing_mode": Optional[str],
            "extended_context_threshold": Optional[int],
            "generate_audio": Optional[bool],
            "image_input_cost": Optional[float],
            "image_output_cost": Optional[float],
            "image_token_cost": Optional[float],
            "intelligence_rating": Optional[int],
            "is_private": bool,
            "is_realtime": Optional[bool],
            "knowledge_cutoff": Optional[str],
            "max_images_per_request": Optional[int],
            "max_input_tokens": Optional[int],
            "max_output_tokens": Optional[int],
            "million_searches_cost": Optional[float],
            "million_tokens_above_128k_cache_read_cost": Optional[float],
            "million_tokens_above_128k_cache_write_cost": Optional[float],
            "million_tokens_above_128k_input_cost": Optional[float],
            "million_tokens_above_128k_output_cost": Optional[float],
            "million_tokens_above_200k_cache_read_cost": Optional[float],
            "million_tokens_above_200k_cache_write_cost": Optional[float],
            "million_tokens_above_200k_input_cost": Optional[float],
            "million_tokens_above_200k_output_cost": Optional[float],
            "million_tokens_audio_input_cost": Optional[float],
            "million_tokens_audio_output_cost": Optional[float],
            "million_tokens_batches_input_cost": Optional[float],
            "million_tokens_batches_output_cost": Optional[float],
            "million_tokens_cache_read_cost": Optional[float],
            "million_tokens_cache_write_1h_cost": Optional[float],
            "million_tokens_cache_write_5m_cost": Optional[float],
            "million_tokens_cache_write_cost": Optional[float],
            "million_tokens_input_cost": Optional[float],
            "million_tokens_output_cost": Optional[float],
            "million_tokens_reasoning_cost": Optional[float],
            "multilingual": Optional[bool],
            "offline": Optional[bool],
            "per_video_second_cost": Optional[float],
            "per_video_second_cost_1080p": Optional[float],
            "pricing": {  # optional
                "cache_read": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_1h": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "cache_write_5m": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "input": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "output": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "reasoning": {  # optional
                    "cost": float,
                    "currency": str,
                    "per": int,
                    "unit": str,
                },
                "variants": {  # optional
                    "cache_read": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_1h": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "cache_write_5m": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "input": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "output": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "reasoning": {  # optional
                        "cost": float,
                        "currency": str,
                        "per": int,
                        "unit": str,
                    },
                    "when": str,
                },
            },
            "reasoning_cost": Optional[float],
            "reasoning_tokens": Optional[int],
            "region": Optional[str],
            "speed_rating": Optional[int],
            "supported_video_aspect_ratios": List[str],
            "supported_video_durations": List[int],
            "supported_video_frame_images": List[str],
            "supported_video_resolutions": List[str],
            "supported_video_sizes": List[str],
            "supports_adaptive_reasoning": Optional[bool],
            "supports_audio_input": Optional[bool],
            "supports_audio_output": Optional[bool],
            "supports_b64_json_response_format": Optional[bool],
            "supports_batch_api": Optional[bool],
            "supports_code_execution": Optional[bool],
            "supports_commercial_use": Optional[bool],
            "supports_computer_use": Optional[bool],
            "supports_developer_message": Optional[bool],
            "supports_direct_cost": Optional[bool],
            "supports_distillation": Optional[bool],
            "supports_extended_thinking": Optional[bool],
            "supports_fine_tuning": Optional[bool],
            "supports_image_edit": Optional[bool],
            "supports_image_input": Optional[bool],
            "supports_image_output": Optional[bool],
            "supports_images": Optional[bool],
            "supports_json_mode_response_format": Optional[bool],
            "supports_json_schema_response_format": Optional[bool],
            "supports_max_completion_tokens": Optional[bool],
            "supports_openai_sdk": Optional[bool],
            "supports_parallel_tool_calls": Optional[bool],
            "supports_pdf_input": Optional[bool],
            "supports_prompt_caching": Optional[bool],
            "supports_reasoning": Optional[bool],
            "supports_reasoning_effort_default": Optional[bool],
            "supports_reasoning_effort_high": Optional[bool],
            "supports_reasoning_effort_low": Optional[bool],
            "supports_reasoning_effort_medium": Optional[bool],
            "supports_reasoning_effort_minimal": Optional[bool],
            "supports_reasoning_effort_none": Optional[bool],
            "supports_reasoning_effort_xhigh": Optional[bool],
            "supports_responses_api": Optional[bool],
            "supports_sampling_params": Optional[bool],
            "supports_streaming": Optional[bool],
            "supports_strict_tool": Optional[bool],
            "supports_structured_outputs": Optional[bool],
            "supports_system_message": Optional[bool],
            "supports_text": Optional[bool],
            "supports_text_input": Optional[bool],
            "supports_text_output": Optional[bool],
            "supports_tool_calling": Optional[bool],
            "supports_tool_choice": Optional[bool],
            "supports_url_context": Optional[bool],
            "supports_url_response_format": Optional[bool],
            "supports_video_input": Optional[bool],
            "supports_video_output": Optional[bool],
            "supports_video_seed": Optional[bool],
            "supports_vision": Optional[bool],
            "supports_web_search": Optional[bool],
            "supports_zdr": Optional[bool],
            "thinking_enforced": Optional[bool],
        },
        "model_developer": Optional[str],
        "model_family": Optional[str],
        "model_id": str,
        "model_type": str,
        "output_cost": Nullable[float],
        "output_currency": str,
        "owner": str,
        "parameters": {
            "config": Dict[str, Any],
            "description": Nullable[str],
            "hints": Optional[str],
            "id": str,
            "is_active": bool,
            "name": str,
            "parameter": str,
            "parameter_type": str,
            "position": Optional[int],
        },
        "pricing_url": Nullable[str],
        "provider": str,
        "ref_id": str,
        "updated": date,
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      configuration: {
        apiKeyEnv?: string;
        apiVersion?: string;
        authMode?: string;
        authType?: string;
        baseUrl?: string;
        deploymentName?: string;
        endpoint?: string;
        inferenceProfileArn?: string;
        integrationId?: string;
        isOpenaiCompatible?: boolean;
        isTunedModel?: boolean;
        location?: string;
        projectId?: string;
        provider: string;
        region?: string;
        shouldUseBetaFeatures?: boolean;
        subtype?: string;
        workspaceId?: string;
      };
      created: Date;
      description: string;
      displayName: string;
      docsUrl: string;
      enabled: boolean;
      enabledForEndpoints: boolean;
      enabledForPlayground: boolean;
      hasCpuPricing: boolean;
      hasFunctions: boolean;
      id: string;
      inputCost: number;
      inputCurrency: string;
      isActive: boolean;
      metadata: {
        allowedPassthroughParameters?: string[];
        autorouter?: {
          economicalModel?: string;
          id?: string;
          profile?: string;
          strongModel?: string;
          version?: string;
        };
        cachedImageInputCost?: number;
        cachedInputCost?: number;
        chainOfThought?: boolean;
        contextLength?: number;
        contextWindow?: number;
        costEfficiencyRating?: number;
        costPerImage?: number;
        deprecationDate?: string;
        embeddingDimensions?: number;
        extendedContextPricingMode?: string;
        extendedContextThreshold?: number;
        generateAudio?: boolean;
        imageInputCost?: number;
        imageOutputCost?: number;
        imageTokenCost?: number;
        intelligenceRating?: number;
        isPrivate: boolean;
        isRealtime?: boolean;
        knowledgeCutoff?: string;
        maxImagesPerRequest?: number;
        maxInputTokens?: number;
        maxOutputTokens?: number;
        millionSearchesCost?: number;
        millionTokensAbove128kCacheReadCost?: number;
        millionTokensAbove128kCacheWriteCost?: number;
        millionTokensAbove128kInputCost?: number;
        millionTokensAbove128kOutputCost?: number;
        millionTokensAbove200kCacheReadCost?: number;
        millionTokensAbove200kCacheWriteCost?: number;
        millionTokensAbove200kInputCost?: number;
        millionTokensAbove200kOutputCost?: number;
        millionTokensAudioInputCost?: number;
        millionTokensAudioOutputCost?: number;
        millionTokensBatchesInputCost?: number;
        millionTokensBatchesOutputCost?: number;
        millionTokensCacheReadCost?: number;
        millionTokensCacheWrite1hCost?: number;
        millionTokensCacheWrite5mCost?: number;
        millionTokensCacheWriteCost?: number;
        millionTokensInputCost?: number;
        millionTokensOutputCost?: number;
        millionTokensReasoningCost?: number;
        multilingual?: boolean;
        offline?: boolean;
        perVideoSecondCost?: number;
        perVideoSecondCost1080p?: number;
        pricing?: {
          cacheRead?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite1h?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          cacheWrite5m?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          input?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          output?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          reasoning?: {
            cost: number;
            currency: string;
            per: number;
            unit: string;
          };
          variants?: {
            cacheRead?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite1h?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            cacheWrite5m?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            input?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            output?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            reasoning?: {
              cost: number;
              currency: string;
              per: number;
              unit: string;
            };
            when: string;
          };
        };
        reasoningCost?: number;
        reasoningTokens?: number;
        region?: string;
        speedRating?: number;
        supportedVideoAspectRatios?: string[];
        supportedVideoDurations?: number[];
        supportedVideoFrameImages?: string[];
        supportedVideoResolutions?: string[];
        supportedVideoSizes?: string[];
        supportsAdaptiveReasoning?: boolean;
        supportsAudioInput?: boolean;
        supportsAudioOutput?: boolean;
        supportsB64JsonResponseFormat?: boolean;
        supportsBatchApi?: boolean;
        supportsCodeExecution?: boolean;
        supportsCommercialUse?: boolean;
        supportsComputerUse?: boolean;
        supportsDeveloperMessage?: boolean;
        supportsDirectCost?: boolean;
        supportsDistillation?: boolean;
        supportsExtendedThinking?: boolean;
        supportsFineTuning?: boolean;
        supportsImageEdit?: boolean;
        supportsImageInput?: boolean;
        supportsImageOutput?: boolean;
        supportsImages?: boolean;
        supportsJsonModeResponseFormat?: boolean;
        supportsJsonSchemaResponseFormat?: boolean;
        supportsMaxCompletionTokens?: boolean;
        supportsOpenaiSDK?: boolean;
        supportsParallelToolCalls?: boolean;
        supportsPdfInput?: boolean;
        supportsPromptCaching?: boolean;
        supportsReasoning?: boolean;
        supportsReasoningEffortDefault?: boolean;
        supportsReasoningEffortHigh?: boolean;
        supportsReasoningEffortLow?: boolean;
        supportsReasoningEffortMedium?: boolean;
        supportsReasoningEffortMinimal?: boolean;
        supportsReasoningEffortNone?: boolean;
        supportsReasoningEffortXhigh?: boolean;
        supportsResponsesApi?: boolean;
        supportsSamplingParams?: boolean;
        supportsStreaming?: boolean;
        supportsStrictTool?: boolean;
        supportsStructuredOutputs?: boolean;
        supportsSystemMessage?: boolean;
        supportsText?: boolean;
        supportsTextInput?: boolean;
        supportsTextOutput?: boolean;
        supportsToolCalling?: boolean;
        supportsToolChoice?: boolean;
        supportsUrlContext?: boolean;
        supportsUrlResponseFormat?: boolean;
        supportsVideoInput?: boolean;
        supportsVideoOutput?: boolean;
        supportsVideoSeed?: boolean;
        supportsVision?: boolean;
        supportsWebSearch?: boolean;
        supportsZdr?: boolean;
        thinkingEnforced?: boolean;
      };
      modelDeveloper?: string;
      modelFamily?: string;
      modelId: string;
      modelType: string;
      outputCost: number;
      outputCurrency: string;
      owner: string;
      parameters: {
        config: Record<string, any>;
        description: string;
        hints?: string;
        id: string;
        isActive: boolean;
        name: string;
        parameter: string;
        parameterType: string;
        position?: number;
      };
      pricingUrl: string;
      provider: string;
      refId: string;
      updated: Date;
    }
    ```
  </CodeGroup>
</Expandable>

### Enable a Model

Adds the model to the workspace's enabled set. Idempotent - re-enabling an already-enabled model returns 204 with no state change.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      orq.models.enable(model_id="<id>")

      # Use the SDK ...

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    await orq.models.enable({
      modelId: "<id>",
    });

  }

  run();
  ```
</CodeGroup>

<Expandable title="Parameters">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "model_id": str,  # required
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      modelId: string;  // required
    }
    ```
  </CodeGroup>
</Expandable>

### Disable a Model

Removes the model from the workspace's enabled set. Idempotent - disabling an already-disabled model returns 204.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      orq.models.disable(model_id="<id>")

      # Use the SDK ...

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    await orq.models.disable({
      modelId: "<id>",
    });

  }

  run();
  ```
</CodeGroup>

<Expandable title="Parameters">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "model_id": str,  # required
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      modelId: string;  // required
    }
    ```
  </CodeGroup>
</Expandable>

### List Models

Lists all models available through the AI Router. Returns each model in OpenAI-compatible shape with its provider, ID, and creation timestamp.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  from orq_ai_sdk import Orq
  import os

  with Orq(
      api_key=os.getenv("ORQ_API_KEY", ""),
  ) as orq:

      res = orq.models.list()

      # Handle response
      print(res)

  ```

  ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import { Orq } from "@orq-ai/node";

  const orq = new Orq({
    apiKey: process.env["ORQ_API_KEY"] ?? "",
  });

  async function run() {
    const result = await orq.models.list();

    console.log(result);
  }

  run();
  ```
</CodeGroup>

<Expandable title="Response">
  <CodeGroup>
    ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
        "data": {
            "created": int,
            "id": str,
            "object": Literal["model"],
            "owned_by": str,
        },
        "object": Literal["list"],
    }
    ```

    ```typescript Node.js theme={"theme":{"light":"github-light","dark":"github-dark"}}
    {
      data: {
        created: number;
        id: string;
        object: string;
        ownedBy: string;
      };
      object: string;
    }
    ```
  </CodeGroup>
</Expandable>
