---
title: "Update autorouter custom model"
method: PATCH
path: "/v2/models/autorouter/{id}"
tags: ["Models"]
---

# Update autorouter custom model

`PATCH /v2/models/autorouter/{id}`

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.

## Path parameters

- `id` string, required — The ID of the model

## Request body

- object
  - `economical_model` string
  - `key` string
  - `profile` string
  - `strong_model` string

## Response `200`

Autorouter model updated successfully

- object
  - `configuration` ModelConfigurationResponse, required
    - `api_key_env` string
    - `api_version` string
    - `auth_mode` string
    - `auth_type` string
    - `base_url` string
    - `deployment_name` string
    - `endpoint` string
    - `inference_profile_arn` string
    - `integration_id` string
    - `is_openai_compatible` boolean
    - `is_tuned_model` boolean
    - `location` string
    - `project_id` string
    - `provider` string, required
    - `region` string
    - `should_use_beta_features` boolean
    - `subtype` string
    - `workspace_id` string
  - `created` string, date-time, required
  - `description` string, nullable, required
  - `display_name` string, required
  - `docs_url` string, nullable, required
  - `enabled` boolean, required
  - `enabled_for_endpoints` boolean, required
  - `enabled_for_playground` boolean, required
  - `has_cpu_pricing` boolean, required
  - `has_functions` boolean, required
  - `id` string, required
  - `input_cost` number, double, nullable, required
  - `input_currency` string, required
  - `is_active` boolean, required
  - `metadata` ModelMetadata, required
    - `allowed_passthrough_parameters` string[], nullable
    - `autorouter` AutoRouterConfig
      - `economical_model` string
      - `id` string
      - `profile` string
      - `strong_model` string
      - `v2` AutoRouterV2Config
        - `aa_slug` string
        - `default_effort` string
        - `intelligence_index` number, double, required
        - `price` number, double, required
        - `reasoning_efforts` object
      - `version` string
    - `cached_image_input_cost` number, double
    - `cached_input_cost` number, double
    - `chain_of_thought` boolean
    - `context_length` integer
    - `context_window` integer
    - `cost_efficiency_rating` integer
    - `cost_per_image` number, double
    - `deprecation_date` string
    - `embedding_dimensions` integer
    - `extended_context_pricing_mode` string
    - `extended_context_threshold` integer
    - `generate_audio` boolean
    - `image_input_cost` number, double
    - `image_output_cost` number, double
    - `image_token_cost` number, double
    - `intelligence_rating` integer
    - `is_private` boolean, required
    - `is_realtime` boolean
    - `knowledge_cutoff` string
    - `max_images_per_request` integer
    - `max_input_tokens` integer
    - `max_output_tokens` integer
    - `million_searches_cost` number, double
    - `million_tokens_above_128k_cache_read_cost` number, double
    - `million_tokens_above_128k_cache_write_cost` number, double
    - `million_tokens_above_128k_input_cost` number, double
    - `million_tokens_above_128k_output_cost` number, double
    - `million_tokens_above_200k_cache_read_cost` number, double
    - `million_tokens_above_200k_cache_write_cost` number, double
    - `million_tokens_above_200k_input_cost` number, double
    - `million_tokens_above_200k_output_cost` number, double
    - `million_tokens_audio_input_cost` number, double
    - `million_tokens_audio_output_cost` number, double
    - `million_tokens_batches_input_cost` number, double
    - `million_tokens_batches_output_cost` number, double
    - `million_tokens_cache_read_cost` number, double
    - `million_tokens_cache_write_1h_cost` number, double
    - `million_tokens_cache_write_5m_cost` number, double
    - `million_tokens_cache_write_cost` number, double
    - `million_tokens_input_cost` number, double
    - `million_tokens_output_cost` number, double
    - `million_tokens_reasoning_cost` number, double
    - `multilingual` boolean
    - `offline` boolean
    - `per_video_second_cost` number, double
    - `per_video_second_cost_1080p` number, double
    - `pricing` Pricing
      - `cache_read` Price
        - `cost` number, double, required
        - `currency` string, required
        - `per` integer, required
        - `unit` string, required
      - `cache_write_1h` Price
        - `cost` number, double, required
        - `currency` string, required
        - `per` integer, required
        - `unit` string, required
      - `cache_write_5m` Price
        - `cost` number, double, required
        - `currency` string, required
        - `per` integer, required
        - `unit` string, required
      - `input` Price
        - `cost` number, double, required
        - `currency` string, required
        - `per` integer, required
        - `unit` string, required
      - `output` Price
        - `cost` number, double, required
        - `currency` string, required
        - `per` integer, required
        - `unit` string, required
      - `reasoning` Price
        - `cost` number, double, required
        - `currency` string, required
        - `per` integer, required
        - `unit` string, required
      - `variants` PricingVariant[], nullable
        - `cache_read` Price
          - `cost` number, double, required
          - `currency` string, required
          - `per` integer, required
          - `unit` string, required
        - `cache_write_1h` Price
          - `cost` number, double, required
          - `currency` string, required
          - `per` integer, required
          - `unit` string, required
        - `cache_write_5m` Price
          - `cost` number, double, required
          - `currency` string, required
          - `per` integer, required
          - `unit` string, required
        - `input` Price
          - `cost` number, double, required
          - `currency` string, required
          - `per` integer, required
          - `unit` string, required
        - `output` Price
          - `cost` number, double, required
          - `currency` string, required
          - `per` integer, required
          - `unit` string, required
        - `reasoning` Price
          - `cost` number, double, required
          - `currency` string, required
          - `per` integer, required
          - `unit` string, required
        - `when` string, required
    - `reasoning_cost` number, double
    - `reasoning_tokens` integer
    - `region` string
    - `speed_rating` integer
    - `supported_video_aspect_ratios` string[], nullable
    - `supported_video_durations` integer[], nullable
    - `supported_video_frame_images` string[], nullable
    - `supported_video_resolutions` string[], nullable
    - `supported_video_sizes` string[], nullable
    - `supports_adaptive_reasoning` boolean
    - `supports_audio_input` boolean
    - `supports_audio_output` boolean
    - `supports_b64_json_response_format` boolean
    - `supports_batch_api` boolean
    - `supports_cache_control` boolean
    - `supports_citations` boolean
    - `supports_code_execution` boolean
    - `supports_commercial_use` boolean
    - `supports_computer_use` boolean
    - `supports_developer_message` boolean
    - `supports_direct_cost` boolean
    - `supports_distillation` boolean
    - `supports_extended_thinking` boolean
    - `supports_fine_tuning` boolean
    - `supports_image_edit` boolean
    - `supports_image_input` boolean
    - `supports_image_output` boolean
    - `supports_images` boolean
    - `supports_json_mode_response_format` boolean
    - `supports_json_schema_response_format` boolean
    - `supports_max_completion_tokens` boolean
    - `supports_openai_sdk` boolean
    - `supports_parallel_tool_calls` boolean
    - `supports_pdf_input` boolean
    - `supports_prompt_caching` boolean
    - `supports_reasoning` boolean
    - `supports_reasoning_effort_default` boolean
    - `supports_reasoning_effort_high` boolean
    - `supports_reasoning_effort_low` boolean
    - `supports_reasoning_effort_max` boolean
    - `supports_reasoning_effort_medium` boolean
    - `supports_reasoning_effort_minimal` boolean
    - `supports_reasoning_effort_none` boolean
    - `supports_reasoning_effort_xhigh` boolean
    - `supports_responses_api` boolean
    - `supports_sampling_params` boolean
    - `supports_streaming` boolean
    - `supports_strict_tool` boolean
    - `supports_structured_outputs` boolean
    - `supports_system_message` boolean
    - `supports_text` boolean
    - `supports_text_input` boolean
    - `supports_text_output` boolean
    - `supports_tool_calling` boolean
    - `supports_tool_choice` boolean
    - `supports_url_context` boolean
    - `supports_url_response_format` boolean
    - `supports_video_input` boolean
    - `supports_video_output` boolean
    - `supports_video_seed` boolean
    - `supports_vision` boolean
    - `supports_web_search` boolean
    - `supports_zdr` boolean
    - `thinking_enforced` boolean
  - `model_developer` string
  - `model_family` string
  - `model_id` string, required
  - `model_type` string, required
  - `output_cost` number, double, nullable, required
  - `output_currency` string, required
  - `owner` string, required
  - `parameters` ModelParameterDocument[], nullable, required
    - `config` object, required
    - `description` string, nullable, required
    - `hints` string
    - `id` string, required
    - `is_active` boolean, required
    - `name` string, required
    - `parameter` string, required
    - `parameter_type` string, required
    - `position` integer
  - `pricing_url` string, nullable, required
  - `provider` string, required
  - `refId` string, required
  - `updated` string, date-time, required

## Other responses

- `400` — Invalid request or duplicate key
- `404` — Model or source model not found

## Changes

- **2026-07-02** `6c287f35a644` — 1 info
  - added the optional property `metadata/autorouter/v2` to the response with the `200` status
- **2026-06-29** `bc4a415db9cb` — 1 info
  - added the optional property `metadata/supports_cache_control` to the response with the `200` status
- **2026-06-28** `54f62cd22dcd` — 1 warning
  - removed the optional property `metadata/supports_cache_control` from the response with the `200` status
- **2026-06-26** `f21a1b29f845` — 1 info
  - added the optional property `metadata/supports_cache_control` to the response with the `200` status
- **2026-06-26** `db1ffe9a3219` — 1 warning
  - removed the optional property `metadata/supports_cache_control` from the response with the `200` status

[Change history](https://skmtc.dev/orq-ai/apis/orq-ai-api/changes/v2/models/autorouter/:id/patch.md)

---

[API](https://skmtc.dev/orq-ai/apis/orq-ai-api.md) · [All operations](https://skmtc.dev/orq-ai/apis/orq-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/orq-ai/orq-ai-api/revisions/320d42e024f2/schema)
