---
title: "Create pricing override"
method: POST
path: "/api/governance/pricing-overrides"
tags: ["Governance"]
---

# Create pricing override

`POST /api/governance/pricing-overrides`

Creates a new pricing override. The most specific matching scope always wins during cost resolution.

## Request body

- CreatePricingOverrideRequest — Request body for creating a pricing override.
  - `name` string, required — Human-readable label
  - `scope_kind` 'global' | 'provider' | 'provider_key' | 'virtual_key' | 'virtual_key_provider' | 'virtual_key_provider_key', required
  - `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', required
  - `pattern` string, required — Model name or wildcard prefix ending with * (e.g. "claude-3*")
  - `request_types` PricingOverrideRequestType[], required — Request types this override applies to. At least one value is required.
  - `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 `201`

Pricing override created 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
- `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)
