{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "$id": "https://cch-plus.com/pricing/v1/models.schema.json",
 "title": "CCHP Cloud Pricing Table v1",
 "x-cchp-table-version": "13509de2c745256c",
 "x-cchp-refreshed-at": "2026-07-09T08:06:21.617Z",
 "x-generated-by": "auto-inferred from the published models.json on every refresh; new fields appear here automatically",
 "type": "object",
 "properties": {
  "currency": {
   "type": "string",
   "examples": [
    "USD"
   ],
   "description": "Table-wide default currency; all prices are in this currency unless a charge overrides it."
  },
  "models": {
   "type": "array",
   "items": {
    "type": "object",
    "properties": {
     "aliases": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "description": "Alternative call IDs seen at other providers/sources."
     },
     "benchmarks": {
      "type": "object",
      "properties": {
       "agentic_index": {
        "type": [
         "number",
         "null"
        ]
       },
       "coding_index": {
        "type": "number"
       },
       "intelligence_index": {
        "type": [
         "number",
         "null"
        ]
       }
      },
      "required": [
       "agentic_index",
       "coding_index",
       "intelligence_index"
      ],
      "description": "Third-party benchmark reference scores (Artificial Analysis)."
     },
     "capabilities": {
      "type": "object",
      "properties": {
       "assistant_prefill": {
        "type": "boolean"
       },
       "audio_input": {
        "type": "boolean"
       },
       "audio_output": {
        "type": "boolean"
       },
       "computer_use": {
        "type": "boolean"
       },
       "function_calling": {
        "type": "boolean"
       },
       "image_output": {
        "type": "boolean"
       },
       "open_weights": {
        "type": "boolean"
       },
       "parallel_function_calling": {
        "type": "boolean"
       },
       "pdf_input": {
        "type": "boolean"
       },
       "prompt_caching": {
        "type": "boolean"
       },
       "reasoning": {
        "type": "boolean"
       },
       "stream": {
        "type": "boolean"
       },
       "structured_output": {
        "type": "boolean"
       },
       "video_input": {
        "type": "boolean"
       },
       "vision": {
        "type": "boolean"
       },
       "web_search": {
        "type": "boolean"
       }
      },
      "description": "Capability switches (absent = false / unknown)."
     },
     "deprecated": {
      "type": "boolean",
      "description": "Deprecated or delisted at the source."
     },
     "deprecation_date": {
      "type": "string",
      "format": "date",
      "description": "Planned deprecation date (YYYY-MM-DD)."
     },
     "display_name": {
      "type": "string",
      "description": "Human-readable model name."
     },
     "docs_url": {
      "type": "string",
      "description": "Official documentation URL."
     },
     "endpoints": {
      "type": "object",
      "properties": {
       "inbound": {
        "type": "array",
        "items": {
         "type": "string",
         "enum": [
          "anthropic-messages",
          "google-gemini",
          "openai-compatible",
          "openai-responses"
         ]
        }
       },
       "outbound": {
        "type": "array",
        "items": {
         "type": "string",
         "enum": [
          "anthropic-messages",
          "google-gemini",
          "openai-compatible",
          "openai-responses"
         ]
        }
       }
      },
      "required": [
       "inbound",
       "outbound"
      ],
      "description": "Supported gateway protocols (inbound = callable as, outbound = native upstream)."
     },
     "family": {
      "type": "string",
      "description": "Model lineage (claude-sonnet / gpt-4o / gemini-2.5 / …)."
     },
     "intro": {
      "type": "string",
      "description": "One-line model introduction (English)."
     },
     "intro_i18n": {
      "type": "object",
      "additionalProperties": {
       "type": "string"
      },
      "x-key-samples": [
       "ja-JP",
       "ru-RU",
       "zh-CN"
      ],
      "description": "Localized introductions: BCP-47 locale → text."
     },
     "knowledge_cutoff": {
      "type": "string",
      "examples": [
       "2025-01",
       "2025-04",
       "2023-12"
      ],
      "description": "Knowledge cutoff (YYYY-MM)."
     },
     "max_input_tokens": {
      "type": "integer",
      "description": "Maximum input (context window) tokens."
     },
     "max_output_tokens": {
      "type": "integer",
      "description": "Maximum output tokens."
     },
     "modalities": {
      "type": "object",
      "properties": {
       "input": {
        "type": "array",
        "items": {
         "type": "string",
         "enum": [
          "audio",
          "code",
          "doc",
          "file",
          "image",
          "pdf",
          "text",
          "video"
         ]
        }
       },
       "output": {
        "type": "array",
        "items": {
         "type": "string",
         "enum": [
          "audio",
          "code",
          "embedding",
          "image",
          "pdf",
          "text",
          "video"
         ]
        }
       }
      },
      "required": [
       "input",
       "output"
      ],
      "description": "Input/output modalities (finer-grained than capability booleans)."
     },
     "model_name": {
      "type": "string",
      "description": "Canonical call ID, always the bare name without vendor prefix (\"gpt-5.5\", not \"openai/gpt-5.5\"); the two forms are equivalent."
     },
     "model_type": {
      "type": "string",
      "examples": [
       "text_generation",
       "deep_thinking",
       "vision_understanding"
      ],
      "description": "Modality-type category slug (two-level taxonomy, see classify.ts): omni / text_generation / deep_thinking / text_understanding / vision_understanding / image_generation / video_generation / 3d_generation / speech_recognition / speech_synthesis / music_generation / multimodal_embedding / text_embedding / text_rerank / realtime_omni / realtime_speech_synthesis / realtime_speech_recognition / realtime_speech_translation / safety_detection."
     },
     "parameters": {
      "type": "object",
      "properties": {
       "defaults": {
        "type": "object",
        "properties": {
         "repetition_penalty": {
          "type": "integer"
         },
         "temperature": {
          "type": "number"
         },
         "top_k": {
          "type": "integer"
         },
         "top_p": {
          "type": "number"
         }
        },
        "required": [
         "temperature"
        ]
       },
       "supported": {
        "type": "array",
        "items": {
         "type": "string",
         "examples": [
          "max_tokens",
          "temperature",
          "top_p"
         ]
        }
       },
       "unsupported": {
        "type": "array",
        "items": {
         "type": "string",
         "enum": [
          "frequency_penalty",
          "logit_bias",
          "logprobs",
          "max_tokens",
          "n",
          "presence_penalty",
          "temperature",
          "top_logprobs",
          "top_p",
          "verbosity"
         ]
        }
       }
      },
      "description": "Request-parameter support: supported / unsupported lists and platform defaults."
     },
     "price_history": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "charge": {
         "type": "string",
         "enum": [
          "audio_input",
          "audio_output",
          "cache_read",
          "cache_write",
          "cache_write_1h",
          "completion",
          "prompt",
          "web_search"
         ],
         "description": "Charge dimension of a price event."
        },
        "date": {
         "type": "string",
         "format": "date"
        },
        "kind": {
         "type": "string",
         "enum": [
          "capability",
          "delisted",
          "limit",
          "listed",
          "price"
         ],
         "description": "Event kind: price change, listed, delisted, capability or limit change."
        },
        "new": {
         "type": "string",
         "pattern": "^-?\\d+(\\.\\d+)?$",
         "description": "New value (decimal string for price events)."
        },
        "note": {
         "type": "string",
         "description": "Human-readable description for capability/limit events."
        },
        "old": {
         "type": "string",
         "pattern": "^-?\\d+(\\.\\d+)?$",
         "description": "Previous value (decimal string for price events)."
        },
        "provider": {
         "type": "string",
         "examples": [
          "moark",
          "berget",
          "ionet"
         ],
         "description": "Provider variant the price event belongs to."
        }
       },
       "required": [
        "date",
        "kind"
       ],
       "description": "One change event produced by diffing adjacent daily snapshots."
      },
      "description": "Recent price/status change events (newest first, truncated). Full history: https://cch-plus.com/api/pricing/history"
     },
     "pricing": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "charges": {
         "type": "object",
         "additionalProperties": {
          "type": "object",
          "properties": {
           "price": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Decimal-string price per unit."
           },
           "unit": {
            "type": "string",
            "enum": [
             "per_M_characters",
             "per_M_tokens",
             "per_M_tokens_per_hour",
             "per_image",
             "per_k_calls",
             "per_request",
             "per_second"
            ],
            "description": "Billing unit for this charge (per_M_tokens = per million tokens, …)."
           }
          },
          "required": [
           "price",
           "unit"
          ],
          "description": "Base price of one charge dimension."
         },
         "x-key-samples": [
          "audio_cache_read",
          "audio_input",
          "audio_output"
         ],
         "description": "Base price per charge dimension (charge key → unit + decimal price). Effective price = base price × factor of the matched price track."
        },
        "finetune_charges": {
         "type": "object",
         "properties": {
          "train": {
           "type": "object",
           "properties": {
            "price": {
             "type": "string",
             "pattern": "^-?\\d+(\\.\\d+)?$"
            },
            "unit": {
             "type": "string",
             "enum": [
              "per_M_tokens"
             ]
            }
           },
           "required": [
            "price",
            "unit"
           ]
          }
         },
         "required": [
          "train"
         ],
         "description": "Fine-tuning job prices (display only, not request billing)."
        },
        "official": {
         "type": "boolean",
         "description": "True when this is a first-party (model vendor) price."
        },
        "provider": {
         "type": "string",
         "description": "Provider slug (see top-level providers dictionary)."
        },
        "provider_model_id": {
         "type": "string",
         "description": "Provider-specific call ID when it differs from model_name."
        },
        "region": {
         "type": "string",
         "description": "Region qualifier, present only when the same provider prices regions differently."
        },
        "source": {
         "type": "string",
         "description": "Data source of this variant (diagnostic/audit)."
        },
        "tracks": {
         "type": "array",
         "items": {
          "type": "object",
          "properties": {
           "charge_factors": {
            "type": "object",
            "properties": {
             "audio_input": {
              "type": "string",
              "pattern": "^-?\\d+(\\.\\d+)?$"
             },
             "cache_read": {
              "type": "string",
              "pattern": "^-?\\d+(\\.\\d+)?$"
             },
             "cache_write": {
              "type": "string",
              "pattern": "^-?\\d+(\\.\\d+)?$"
             },
             "cache_write_1h": {
              "type": "string",
              "pattern": "^-?\\d+(\\.\\d+)?$"
             },
             "completion": {
              "type": "string",
              "pattern": "^-?\\d+(\\.\\d+)?$"
             },
             "enterprise_web_search": {
              "type": "string",
              "pattern": "^-?\\d+(\\.\\d+)?$"
             },
             "file_search_call": {
              "type": "string",
              "pattern": "^-?\\d+(\\.\\d+)?$"
             },
             "google_search_grounding": {
              "type": "string",
              "pattern": "^-?\\d+(\\.\\d+)?$"
             },
             "image_input": {
              "type": "string",
              "pattern": "^-?\\d+(\\.\\d+)?$"
             },
             "image_output": {
              "type": "string",
              "pattern": "^-?\\d+(\\.\\d+)?$"
             },
             "maps": {
              "type": "string",
              "pattern": "^-?\\d+(\\.\\d+)?$"
             },
             "prompt": {
              "type": "string",
              "pattern": "^-?\\d+(\\.\\d+)?$"
             },
             "video_input": {
              "type": "string",
              "pattern": "^-?\\d+(\\.\\d+)?$"
             },
             "video_output_1024x1792": {
              "type": "string"
             },
             "video_output_1080p": {
              "type": "string"
             },
             "video_output_1080x1920": {
              "type": "string"
             },
             "video_output_1792x1024": {
              "type": "string"
             },
             "video_output_720p": {
              "type": "string",
              "pattern": "^-?\\d+(\\.\\d+)?$"
             },
             "video_output_720x1280": {
              "type": "string",
              "pattern": "^-?\\d+(\\.\\d+)?$"
             },
             "web_search": {
              "type": "string",
              "pattern": "^-?\\d+(\\.\\d+)?$"
             }
            },
            "description": "Per-charge multiplier overrides (charge key → decimal factor)."
           },
           "factor": {
            "type": "string",
            "pattern": "^-?\\d+(\\.\\d+)?$",
            "description": "Default multiplier (decimal string, \"1\" = base price) applied to all charges."
           },
           "label": {
            "type": "string",
            "examples": [
             "standard",
             "batch",
             ">200K context"
            ],
            "description": "Human-readable track label (\"≤200K context\", \"batch\", …)."
           },
           "triggers": {
            "type": "array",
            "items": {
             "type": "object",
             "properties": {
              "field": {
               "type": "string",
               "enum": [
                "service_tier"
               ]
              },
              "header": {
               "type": "string",
               "examples": [
                "anthropic-beta"
               ]
              },
              "inclusive": {
               "type": "boolean"
              },
              "kind": {
               "type": "string",
               "enum": [
                "body_matches",
                "endpoint_matches",
                "header_matches",
                "input_tokens_above"
               ]
              },
              "pattern": {
               "type": "string",
               "enum": [
                "^batch\\.",
                "^flex$",
                "^priority$",
                "context-1m-\\d{4}-\\d{2}-\\d{2}"
               ]
              },
              "threshold": {
               "type": "integer"
              }
             },
             "required": [
              "kind"
             ]
            },
            "description": "Track match conditions, ANDed together. Kinds: input_tokens_above/below (context threshold), header_matches/header_present (request header), body_matches (request-body field regex, e.g. service_tier), endpoint_matches (egress operation-ID regex, e.g. ^batch\\.)."
           }
          },
          "required": [
           "factor",
           "label",
           "triggers"
          ],
          "description": "One price track (billing tier)."
         },
         "description": "Price tracks, first-match by array order: the first track whose triggers all match applies; a track with empty triggers is the unconditional default. Absent = a single default track with factor 1."
        }
       },
       "required": [
        "charges",
        "official",
        "provider",
        "source"
       ],
       "description": "One provider price variant for this model."
      },
      "description": "Per-provider price variants. Official variants come first; clients default to the first official variant."
     },
     "rate_limits": {
      "type": "object",
      "properties": {
       "rpm": {
        "type": "integer"
       },
       "tpm": {
        "type": "integer"
       }
      },
      "required": [
       "rpm",
       "tpm"
      ],
      "description": "Official rate-limit reference (requests / tokens per minute)."
     },
     "reasoning_config": {
      "type": "object",
      "properties": {
       "budget_min": {
        "type": "integer"
       },
       "mandatory": {
        "type": "boolean"
       }
      },
      "description": "Thinking/reasoning constraints (mandatory switch, minimum budget)."
     },
     "released_at": {
      "type": "string",
      "description": "Release date (YYYY-MM-DD)."
     },
     "slug": {
      "type": "string",
      "description": "Globally unique key: `${vendor}/${model_name}`."
     },
     "status": {
      "type": "string",
      "enum": [
       "alpha",
       "beta",
       "deprecated"
      ],
      "description": "Lifecycle status (absent = stable)."
     },
     "vendor": {
      "type": "string",
      "examples": [
       "other",
       "alibaba",
       "google"
      ],
      "description": "Model publisher slug (anthropic / openai / google / …)."
     }
    },
    "required": [
     "display_name",
     "endpoints",
     "model_name",
     "model_type",
     "pricing",
     "slug",
     "vendor"
    ],
    "description": "A single model entry."
   },
   "description": "Model entries, one per canonical model (bare model name, no vendor prefix)."
  },
  "providers": {
   "type": "object",
   "additionalProperties": {
    "type": "object",
    "properties": {
     "doc": {
      "type": "string",
      "format": "uri"
     },
     "icon": {
      "type": "string",
      "description": "LobeHub static SVG basename served at https://cch-plus.com/model-icons/<icon>. Absent when no brand icon matches (consumers fall back to a monogram)."
     },
     "icon_mono": {
      "type": "boolean",
      "description": "True when the icon is monochrome and should invert with the theme."
     },
     "name": {
      "type": "string"
     }
    },
    "required": [
     "name"
    ]
   },
   "x-key-samples": [
    "01-ai",
    "302ai",
    "360"
   ],
   "description": "Provider dictionary: slug → display name / docs URL / brand icon."
  },
  "refreshed_at": {
   "type": "string",
   "description": "Last substantive refresh time of the source snapshots (ISO 8601)."
  },
  "schema": {
   "type": "string",
   "examples": [
    "cchp.pricing-table/v1"
   ],
   "const": "cchp.pricing-table/v1",
   "description": "Format identifier; incompatible changes bump to v2."
  },
  "version": {
   "type": "string",
   "examples": [
    "13509de2c745256c"
   ],
   "description": "Content fingerprint (sha-256 prefix of the canonical payload); changes iff content changes."
  }
 },
 "required": [
  "currency",
  "models",
  "providers",
  "refreshed_at",
  "schema",
  "version"
 ],
 "description": "CCHP Cloud Pricing Table (CPT) v1 — aggregated LLM model catalog with per-provider pricing, tiered price tracks, capabilities, metadata and price-change history. All prices are decimal strings to avoid float ambiguity; consumers should parse them as fixed-point numbers."
}
