---
title: "Update pricing override"
method: PUT
path: "/api/governance/pricing-overrides/{id}"
tags: ["Governance"]
---

# Update pricing override

`PUT /api/governance/pricing-overrides/{id}`

Updates an existing pricing override. Omitted fields are merged from the existing record. The `patch` field is always replaced in full when provided.

## Path parameters

- `id` string, required

## Request body

- UpdatePricingOverrideRequest — Request body for updating a pricing override. All fields are optional - omitted fields are merged from the existing record. The `patch` field is always replaced in full when provided.
  - `name` string — Human-readable label
  - `scope_kind` 'global' | 'provider' | 'provider_key' | 'virtual_key' | 'virtual_key_provider' | 'virtual_key_provider_key'
  - `virtual_key_id` string — Required for virtual_key* scopes
  - `provider_id` string — Required for provider and virtual_key_provider scopes
  - `provider_key_id` string — Required for provider_key and virtual_key_provider_key scopes
  - `match_type` 'exact' | 'wildcard'
  - `pattern` string — Model name or wildcard prefix ending with * (e.g. "claude-3*")
  - `request_types` PricingOverrideRequestType[] — Request types this override applies to.
  - `patch` PricingPatch — Pricing fields to override. Only non-zero/non-null fields are applied. All values are cost per unit in USD.
    - `input_cost_per_token` number
    - `output_cost_per_token` number
    - `input_cost_per_token_batches` number
    - `output_cost_per_token_batches` number
    - `input_cost_per_token_priority` number
    - `output_cost_per_token_priority` number
    - `input_cost_per_character` number
    - `input_cost_per_token_above_128k_tokens` number
    - `output_cost_per_token_above_128k_tokens` number
    - `input_cost_per_token_above_200k_tokens` number
    - `output_cost_per_token_above_200k_tokens` number
    - `cache_creation_input_token_cost` number
    - `cache_read_input_token_cost` number
    - `cache_creation_input_token_cost_above_200k_tokens` number
    - `cache_read_input_token_cost_above_200k_tokens` number
    - `cache_read_input_token_cost_priority` number
    - `cache_read_input_image_token_cost` number
    - `cache_creation_input_audio_token_cost` number
    - `input_cost_per_image` number
    - `output_cost_per_image` number
    - `input_cost_per_pixel` number
    - `output_cost_per_pixel` number
    - `input_cost_per_image_token` number
    - `output_cost_per_image_token` number
    - `output_cost_per_image_low_quality` number
    - `output_cost_per_image_medium_quality` number
    - `output_cost_per_image_high_quality` number
    - `output_cost_per_image_auto_quality` number
    - `output_cost_per_image_premium_image` number
    - `output_cost_per_image_above_512_and_512_pixels` number
    - `output_cost_per_image_above_1024_and_1024_pixels` number
    - `output_cost_per_image_above_2048_and_2048_pixels` number
    - `output_cost_per_image_above_4096_and_4096_pixels` number
    - `input_cost_per_audio_token` number
    - `output_cost_per_audio_token` number
    - `input_cost_per_audio_per_second` number
    - `input_cost_per_second` number
    - `input_cost_per_video_per_second` number
    - `output_cost_per_video_per_second` number
    - `output_cost_per_second` number
    - `search_context_cost_per_query` number
    - `code_interpreter_cost_per_session` number

## Response `200`

Pricing override updated successfully

- PricingOverrideResponse
  - `message` string
  - `pricing_override` PricingOverride — A pricing override that applies custom rates to matching requests.
    - `id` string — Unique override ID (UUID)
    - `name` string — Human-readable label
    - `scope_kind` 'global' | 'provider' | 'provider_key' | 'virtual_key' | 'virtual_key_provider' | 'virtual_key_provider_key' — Scope that determines which requests this override applies to
    - `virtual_key_id` string, nullable — Required for virtual_key* scopes
    - `provider_id` string, nullable — Required for provider and virtual_key_provider scopes
    - `provider_key_id` string, nullable — Required for provider_key and virtual_key_provider_key scopes
    - `match_type` 'exact' | 'wildcard' — How the pattern is matched against the model name
    - `pattern` string — Model name or wildcard prefix (e.g. "gpt-4o" or "claude-3*")
    - `request_types` PricingOverrideRequestType[] — Request types this override applies to. At least one value is required.
    - `pricing_patch` string — JSON-encoded pricing fields to override (as stored in the database)
    - `patch` PricingPatch — Pricing fields to override. Only non-zero/non-null fields are applied. All values are cost per unit in USD.
      - `input_cost_per_token` number
      - `output_cost_per_token` number
      - `input_cost_per_token_batches` number
      - `output_cost_per_token_batches` number
      - `input_cost_per_token_priority` number
      - `output_cost_per_token_priority` number
      - `input_cost_per_character` number
      - `input_cost_per_token_above_128k_tokens` number
      - `output_cost_per_token_above_128k_tokens` number
      - `input_cost_per_token_above_200k_tokens` number
      - `output_cost_per_token_above_200k_tokens` number
      - `cache_creation_input_token_cost` number
      - `cache_read_input_token_cost` number
      - `cache_creation_input_token_cost_above_200k_tokens` number
      - `cache_read_input_token_cost_above_200k_tokens` number
      - `cache_read_input_token_cost_priority` number
      - `cache_read_input_image_token_cost` number
      - `cache_creation_input_audio_token_cost` number
      - `input_cost_per_image` number
      - `output_cost_per_image` number
      - `input_cost_per_pixel` number
      - `output_cost_per_pixel` number
      - `input_cost_per_image_token` number
      - `output_cost_per_image_token` number
      - `output_cost_per_image_low_quality` number
      - `output_cost_per_image_medium_quality` number
      - `output_cost_per_image_high_quality` number
      - `output_cost_per_image_auto_quality` number
      - `output_cost_per_image_premium_image` number
      - `output_cost_per_image_above_512_and_512_pixels` number
      - `output_cost_per_image_above_1024_and_1024_pixels` number
      - `output_cost_per_image_above_2048_and_2048_pixels` number
      - `output_cost_per_image_above_4096_and_4096_pixels` number
      - `input_cost_per_audio_token` number
      - `output_cost_per_audio_token` number
      - `input_cost_per_audio_per_second` number
      - `input_cost_per_second` number
      - `input_cost_per_video_per_second` number
      - `output_cost_per_video_per_second` number
      - `output_cost_per_second` number
      - `search_context_cost_per_query` number
      - `code_interpreter_cost_per_session` number
    - `config_hash` string, nullable — Auto-managed hash for config-file-sourced overrides. Do not set manually.
    - `created_at` string, date-time
    - `updated_at` string, date-time

## Other responses

- `400` — Bad request
- `404` — Pricing override not found
- `500` — Internal server error

---

[API](https://skmtc.net/getbifrost/apis/bifrost-api.md) · [All operations](https://skmtc.net/getbifrost/apis/bifrost-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getbifrost/bifrost-api/versions/f8cab88f64ea/schema)
