Skip to main content

Requirements

Overview

In air-gapped setups, the Gateway and Backend cannot access Portkey’s hosted control plane for automatic pricing updates. Pricing and model capability data must be sourced locally or from an allowed endpoint. Flow:
  • The Gateway fetches pricing from the Backend when:
    MODEL_CONFIGS_PROXY_FETCH_ENABLED=ON
    
  • The Backend resolves pricing using a fallback chain.

Built-In Fallback Behavior

  • If the Gateway cannot reach the Backend → it uses bundled pricing configs.
  • If the Backend cannot reach any configured source → it uses bundled pricing configs.
  • A baseline dataset is always available.

Option 1: Use Portkey Hosted Config Service

Use when outbound HTTPS is allowed from Backend. Backend fetches pricing and capabilities JSON from:
https://configs.portkey.ai/pricing/{provider}.json
https://configs.portkey.ai/general/{provider}.json
No request data is sent to Portkey. Only static JSON files are retrieved. See the Portkey Models API docs for the full schema.

Gateway

VariableValue
MODEL_CONFIGS_PROXY_FETCH_ENABLEDON

Backend

VariableValue
MODEL_CONFIGS_PROXY_FETCH_ENABLEDON
MODEL_CONFIGS_PROXY_URLhttps://configs.portkey.ai
Data is cached in memory for 1 hour.

Option 2: Fully Air-Gapped (Self-Hosted Data)

Use when no outbound internet is allowed.

Gateway

VariableValue
MODEL_CONFIGS_PROXY_FETCH_ENABLEDON

Backend

Maintain a local copy of the open-source Portkey Models repository. Repository structure:
pricing/{provider}.json
general/{provider}.json
Example:
pricing/openai.json
general/openai.json
You can expose these files to Backend in two ways.

2A. Log Store

Upload pricing and capability JSON files to your object storage.

Backend Environment

VariableDescription
MODEL_CONFIGS_PRICING_LOG_STORE_PATHPath to pricing JSON files
MODEL_CONFIGS_CAPABILITIES_LOG_STORE_PATHPath to capabilities JSON files
Expected structure:
{PRICING_PATH}/openai.json
{CAPABILITIES_PATH}/openai.json
Updates
  • Replace JSON files in the same path.
  • Backend refreshes within 1 hour (cache TTL).

2B. Local Volume Mount

Mount pricing/ and general/ directories to Backend.

Backend Environment

VariableDescription
MODEL_CONFIGS_PRICING_LOCAL_PATHMounted pricing directory
MODEL_CONFIGS_CAPABILITIES_LOCAL_PATHMounted capabilities directory
Example Helm values:
backend:
  extraVolumes:
    - name: model-configs
      configMap:
        name: portkey-model-configs
  extraVolumeMounts:
    - name: model-configs
      mountPath: /app/model-configs
  env:
    MODEL_CONFIGS_PRICING_LOCAL_PATH: /app/model-configs/pricing
    MODEL_CONFIGS_CAPABILITIES_LOCAL_PATH: /app/model-configs/general
Updates
  • Update ConfigMap/PVC/mounted path.
  • Restart Backend pods if required by your mount strategy.
  • Data refreshes into memory cache.

Keeping Pricing Updated

  1. Pull latest files from the models repository.
  2. Update your log store or volume mount.
  3. Backend refreshes within 1 hour.
For ConfigMap mounts, pod restart may be required.
Last modified on February 13, 2026