# Get a public model by name

**API:** Model API

**Endpoint:** `GET /api/platform/model-catalog/model`

Anonymous exact lookup by public name or registered alias. Returns the canonical model ID and the same model object as the catalog. Unknown or unlisted models return 404. locale controls document selection only.

## Base URL

- `https://openapi.felo.ai` — Produktion

## Authentication

No authentication required — this endpoint is anonymous.

## Parameters

| Name | In | Required | Type | Description |
| --- | --- | --- | --- | --- |
| `model` | query | yes | string | Exact case-sensitive public model name or registered alias |
| `locale` | query | no | string, enum: "en", "zh-CN", "zh-TW", "ja", "ko", "ru", …, default: "en" | Document language; falls back to English when unavailable |
| `If-None-Match` | header | no | string | Previous ETag; matching content returns 304 |

## Responses

### 200 — Public model details

Headers:
- `Cache-Control` (string) — public, max-age=60
- `ETag` (string) — Representation fingerprint

**application/json**

Schema: `ModelCatalogModelResponse` (`#/components/schemas/ModelCatalogModelResponse`)

Example:

```json
{
  "schema_version": 2,
  "locale": "en",
  "data": {
    "id": "example-model",
    "slug": "example/example-model",
    "name": "Example model",
    "short_name": "Example",
    "author": "example",
    "author_display_name": "Example",
    "icon_url": null,
    "model_kind": "chat",
    "recommended_protocol": "messages",
    "summary": "Example model.",
    "description": "Illustrative text, not a real model.",
    "best_for": [],
    "content_locale": "en",
    "available_content_locales": [
      "en"
    ],
    "document": {
      "notice": null,
      "extra": {},
      "updated_at": "2026-10-14T00:00:00Z"
    },
    "latency_class": null,
    "trial_status": "unknown",
    "released_at": null,
    "sort_order": 0,
    "updated_at": "2026-10-14T00:00:00Z",
    "context_length": 32768,
    "max_completion_tokens": 4096,
    "input_modalities": [
      "text"
    ],
    "output_modalities": [
      "text"
    ],
    "capabilities": [],
    "supported_parameters": [
      "temperature"
    ],
    "reasoning": null,
    "video_spec": null,
    "default_channel": "standard",
    "channels": [
      {
        "code": "standard",
        "name": "Standard",
        "service_tier": "standard",
        "region": null,
        "is_default": true,
        "runnable": true,
        "standard_pricing": {
          "channel": "standard",
          "currency": "USD",
          "basis": "standard",
          "billing_kind": "token",
          "prompt": "0.000001",
          "completion": "0.000002",
          "input_cache_write": "0.00000125",
          "input_cache_write_1h": "0.000002",
          "input_cache_write_12h": "0.000004",
          "tiers": []
        },
        "discount_multiplier": "0.8",
        "pricing_mode": "configured_rates"
      },
      {
        "code": "priority",
        "name": "Priority",
        "service_tier": "priority",
        "region": null,
        "is_default": false,
        "runnable": false,
        "standard_pricing": null,
        "discount_multiplier": null,
        "pricing_mode": "configured_rates"
      }
    ],
    "parameter_definitions": {
      "temperature": {}
    }
  }
}
```

### 304 — Unchanged representation; empty body

Headers:
- `Cache-Control` (string) — public, max-age=60
- `ETag` (string) — Representation fingerprint

### 400 — Invalid model name or locale

### 404 — Model not found

### 422 — Missing model query parameter

### 503 — Model catalog unavailable

## Schema definitions

### ModelCatalogAudioSpec

`#/components/schemas/ModelCatalogAudioSpec`

```json
{
  "additionalProperties": false,
  "properties": {
    "input": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Input"
    },
    "output": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Output"
    },
    "output_optional": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Output Optional"
    }
  },
  "title": "AudioSpec",
  "type": "object"
}
```

### ModelCatalogCatalogModel

`#/components/schemas/ModelCatalogCatalogModel`

```json
{
  "properties": {
    "id": {
      "title": "Id",
      "type": "string"
    },
    "slug": {
      "title": "Slug",
      "type": "string"
    },
    "name": {
      "title": "Name",
      "type": "string"
    },
    "short_name": {
      "title": "Short Name",
      "type": "string"
    },
    "author": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Author"
    },
    "author_display_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Author Display Name"
    },
    "icon_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Icon Url"
    },
    "model_kind": {
      "enum": [
        "chat",
        "image_generation",
        "video_generation",
        "decisions"
      ],
      "title": "Model Kind",
      "type": "string"
    },
    "recommended_protocol": {
      "anyOf": [
        {
          "enum": [
            "responses",
            "messages"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Nur eine modellweite Client-Empfehlung; null für Nicht-Chat-Modelle; schränkt aufrufbare Protokolle nicht ein",
      "title": "Recommended Protocol"
    },
    "summary": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Summary"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "best_for": {
      "items": {
        "type": "string"
      },
      "title": "Best For",
      "type": "array"
    },
    "content_locale": {
      "anyOf": [
        {
          "enum": [
            "en",
            "zh-CN",
            "zh-TW",
            "ja",
            "ko",
            "ru",
            "pt-BR",
            "de",
            "fr",
            "es",
            "nl",
            "it",
            "vi",
            "id",
            "th",
            "ms",
            "hi",
            "bn",
            "pl",
            "cs",
            "uk",
            "tr",
            "ar",
            "he",
            "fa",
            "ur"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Content Locale"
    },
    "available_content_locales": {
      "items": {
        "enum": [
          "en",
          "zh-CN",
          "zh-TW",
          "ja",
          "ko",
          "ru",
          "pt-BR",
          "de",
          "fr",
          "es",
          "nl",
          "it",
          "vi",
          "id",
          "th",
          "ms",
          "hi",
          "bn",
          "pl",
          "cs",
          "uk",
          "tr",
          "ar",
          "he",
          "fa",
          "ur"
        ],
        "type": "string"
      },
      "title": "Available Content Locales",
      "type": "array"
    },
    "document": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/ModelCatalogPublicDocument"
        },
        {
          "type": "null"
        }
      ],
      "description": "Nur die ausgewählte Sprache; summary/description/best_for bleiben am Modell"
    },
    "latency_class": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Latency Class"
    },
    "trial_status": {
      "title": "Trial Status",
      "type": "string"
    },
    "released_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Model release date in ISO 8601 UTC; may use the OpenRouter listing time. Manual overrides take precedence; null means unknown.",
      "title": "Released At"
    },
    "sort_order": {
      "title": "Sort Order",
      "type": "integer"
    },
    "updated_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Updated At"
    },
    "context_length": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Context Length"
    },
    "max_completion_tokens": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "title": "Max Completion Tokens"
    },
    "input_modalities": {
      "items": {
        "type": "string"
      },
      "title": "Input Modalities",
      "type": "array"
    },
    "output_modalities": {
      "items": {
        "type": "string"
      },
      "title": "Output Modalities",
      "type": "array"
    },
    "capabilities": {
      "items": {
        "type": "string"
      },
      "title": "Capabilities",
      "type": "array"
    },
    "supported_parameters": {
      "items": {
        "type": "string"
      },
      "title": "Supported Parameters",
      "type": "array"
    },
    "parameter_definitions": {
      "additionalProperties": {
        "additionalProperties": true,
        "type": "object"
      },
      "description": "Supported parameters keyed by name, using OpenRouter type/values/min/max format (not JSON Schema); preserves unknown fields; an empty definition means supported with unspecified constraints. An empty object means no parameter metadata. No defaults or options are inferred.",
      "title": "Parameter Definitions",
      "type": "object"
    },
    "reasoning": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "description": "Upstream-JSON-Objekt für Reasoning; bewahrt unbekannte Felder; null, wenn nicht verfügbar",
      "title": "Reasoning"
    },
    "video_spec": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/ModelCatalogVideoSpec"
        },
        {
          "type": "null"
        }
      ]
    },
    "default_channel": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Default Channel"
    },
    "channels": {
      "items": {
        "$ref": "#/components/schemas/ModelCatalogWalletPublicChannel"
      },
      "title": "Channels",
      "type": "array"
    }
  },
  "required": [
    "id",
    "slug",
    "name",
    "short_name",
    "author",
    "author_display_name",
    "icon_url",
    "model_kind",
    "summary",
    "description",
    "best_for",
    "content_locale",
    "available_content_locales",
    "document",
    "latency_class",
    "trial_status",
    "released_at",
    "sort_order",
    "updated_at",
    "context_length",
    "max_completion_tokens",
    "input_modalities",
    "output_modalities",
    "capabilities",
    "supported_parameters",
    "reasoning",
    "video_spec"
  ],
  "title": "CatalogModel",
  "type": "object"
}
```

### ModelCatalogCatalogNotice

`#/components/schemas/ModelCatalogCatalogNotice`

```json
{
  "properties": {
    "title": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Title"
    },
    "body": {
      "title": "Body",
      "type": "string"
    },
    "link_text": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Link Text"
    },
    "target_slug": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Target Slug"
    }
  },
  "required": [
    "title",
    "body",
    "link_text",
    "target_slug"
  ],
  "title": "CatalogNotice",
  "type": "object"
}
```

### ModelCatalogCatalogPricing

`#/components/schemas/ModelCatalogCatalogPricing`

```json
{
  "properties": {
    "channel": {
      "title": "Channel",
      "type": "string"
    },
    "currency": {
      "const": "USD",
      "title": "Currency",
      "type": "string"
    },
    "basis": {
      "const": "standard",
      "title": "Basis",
      "type": "string"
    },
    "billing_kind": {
      "title": "Billing Kind",
      "type": "string"
    },
    "prompt": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD pro Eingabe-Token; null bedeutet nicht verfügbar, 0 bedeutet kostenlos",
      "title": "Prompt"
    },
    "completion": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD pro Ausgabe-Token",
      "title": "Completion"
    },
    "audio": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD pro Audio-Eingabe-Token",
      "title": "Audio"
    },
    "input_audio_cache": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD pro zwischengespeichertem Audio-Token",
      "title": "Input Audio Cache"
    },
    "input_image_cache": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD per cached image token",
      "title": "Input Image Cache"
    },
    "internal_reasoning": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD pro Reasoning-Token",
      "title": "Internal Reasoning"
    },
    "input_cache_read": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD pro zwischengespeichertem Eingabe-Token",
      "title": "Input Cache Read"
    },
    "input_cache_write": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD pro Cache-Schreib-Token",
      "title": "Input Cache Write"
    },
    "input_cache_write_1h": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD pro Cache-Schreib-Token für 1 Stunde; getrennt von Schreibvorgängen mit standardmäßiger TTL",
      "title": "Input Cache Write 1H"
    },
    "input_cache_write_12h": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD per 12-hour cache write token; separate from default TTL writes",
      "title": "Input Cache Write 12H"
    },
    "input_image": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD pro Eingabebild",
      "title": "Input Image"
    },
    "output_image": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD pro generiertem Bild",
      "title": "Output Image"
    },
    "input_image_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD pro Eingabebild-Token",
      "title": "Input Image Token"
    },
    "output_image_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD pro Ausgabebild-Token",
      "title": "Output Image Token"
    },
    "input_video_second": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD pro Sekunde Eingabevideo",
      "title": "Input Video Second"
    },
    "output_video_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD per generated video token",
      "title": "Output Video Token"
    },
    "output_video_second": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD pro Sekunde generiertem Video",
      "title": "Output Video Second"
    },
    "request": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD pro Anfrage",
      "title": "Request"
    },
    "credit": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD per credit; billed using the upstream call multiplier",
      "title": "Credit"
    },
    "web_search": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD pro Websuche-Anfrage",
      "title": "Web Search"
    },
    "tiers": {
      "description": "Reihenfolge beibehalten; die erste passende Tarifstufe überschreibt die Basisraten",
      "items": {
        "$ref": "#/components/schemas/ModelCatalogPriceTier"
      },
      "title": "Tiers",
      "type": "array"
    }
  },
  "required": [
    "channel",
    "currency",
    "basis",
    "billing_kind",
    "tiers"
  ],
  "title": "CatalogPricing",
  "type": "object"
}
```

### ModelCatalogDurationSpec

`#/components/schemas/ModelCatalogDurationSpec`

```json
{
  "additionalProperties": false,
  "properties": {
    "min": {
      "minimum": 0,
      "title": "Min",
      "type": "number"
    },
    "max": {
      "exclusiveMinimum": 0,
      "title": "Max",
      "type": "number"
    },
    "step": {
      "exclusiveMinimum": 0,
      "title": "Step",
      "type": "number"
    }
  },
  "required": [
    "min",
    "max",
    "step"
  ],
  "title": "DurationSpec",
  "type": "object"
}
```

### ModelCatalogModelResponse

`#/components/schemas/ModelCatalogModelResponse`

```json
{
  "properties": {
    "schema_version": {
      "const": 2,
      "title": "Schema Version",
      "type": "integer"
    },
    "locale": {
      "enum": [
        "en",
        "zh-CN",
        "zh-TW",
        "ja",
        "ko",
        "ru",
        "pt-BR",
        "de",
        "fr",
        "es",
        "nl",
        "it",
        "vi",
        "id",
        "th",
        "ms",
        "hi",
        "bn",
        "pl",
        "cs",
        "uk",
        "tr",
        "ar",
        "he",
        "fa",
        "ur"
      ],
      "title": "Locale",
      "type": "string"
    },
    "data": {
      "$ref": "#/components/schemas/ModelCatalogCatalogModel"
    }
  },
  "required": [
    "schema_version",
    "locale",
    "data"
  ],
  "title": "CatalogModelResponse",
  "type": "object"
}
```

### ModelCatalogPixelFrameEstimator

`#/components/schemas/ModelCatalogPixelFrameEstimator`

```json
{
  "additionalProperties": false,
  "properties": {
    "kind": {
      "const": "pixel_frames",
      "default": "pixel_frames",
      "title": "Kind",
      "type": "string"
    },
    "version": {
      "const": 1,
      "default": 1,
      "title": "Version",
      "type": "integer"
    },
    "fps": {
      "const": "24",
      "default": "24",
      "title": "Fps",
      "type": "string"
    },
    "pixels_per_token": {
      "const": "1024",
      "default": "1024",
      "title": "Pixels Per Token",
      "type": "string"
    }
  },
  "title": "PixelFrameEstimator",
  "type": "object"
}
```

### ModelCatalogPriceCondition

`#/components/schemas/ModelCatalogPriceCondition`

```json
{
  "properties": {
    "field": {
      "description": "Felo-Preiskontext, z. B. input_context_tokens",
      "title": "Field",
      "type": "string"
    },
    "operator": {
      "enum": [
        "eq",
        "gt",
        "gte"
      ],
      "title": "Operator",
      "type": "string"
    },
    "value": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "integer"
        },
        {
          "type": "number"
        },
        {
          "type": "boolean"
        }
      ],
      "title": "Value"
    }
  },
  "required": [
    "field",
    "operator",
    "value"
  ],
  "title": "PriceCondition",
  "type": "object"
}
```

### ModelCatalogPriceTier

`#/components/schemas/ModelCatalogPriceTier`

```json
{
  "properties": {
    "conditions": {
      "items": {
        "$ref": "#/components/schemas/ModelCatalogPriceCondition"
      },
      "title": "Conditions",
      "type": "array"
    },
    "overrides": {
      "additionalProperties": {
        "type": "string"
      },
      "title": "Overrides",
      "type": "object"
    }
  },
  "required": [
    "conditions",
    "overrides"
  ],
  "title": "PriceTier",
  "type": "object"
}
```

### ModelCatalogPublicDocument

`#/components/schemas/ModelCatalogPublicDocument`

```json
{
  "properties": {
    "notice": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/ModelCatalogCatalogNotice"
        },
        {
          "type": "null"
        }
      ]
    },
    "extra": {
      "additionalProperties": true,
      "title": "Extra",
      "type": "object"
    },
    "updated_at": {
      "description": "Aktualisierungszeitpunkt des Dokuments in der ausgewählten Sprache",
      "title": "Updated At",
      "type": "string"
    }
  },
  "required": [
    "notice",
    "extra",
    "updated_at"
  ],
  "title": "PublicDocument",
  "type": "object"
}
```

### ModelCatalogPublicSettlementPolicy

`#/components/schemas/ModelCatalogPublicSettlementPolicy`

```json
{
  "properties": {
    "version": {
      "const": 1,
      "title": "Version",
      "type": "integer"
    },
    "primary": {
      "const": "configured_rates",
      "title": "Primary",
      "type": "string"
    },
    "fallback": {
      "enum": [
        "upstream_cost",
        "review_required"
      ],
      "title": "Fallback",
      "type": "string"
    }
  },
  "required": [
    "version",
    "primary",
    "fallback"
  ],
  "title": "PublicSettlementPolicy",
  "type": "object"
}
```

### ModelCatalogSecondVideoReference

`#/components/schemas/ModelCatalogSecondVideoReference`

```json
{
  "additionalProperties": false,
  "properties": {
    "version": {
      "const": 1,
      "default": 1,
      "title": "Version",
      "type": "integer"
    },
    "currency": {
      "const": "USD",
      "default": "USD",
      "title": "Currency",
      "type": "string"
    },
    "basis": {
      "const": "public_reference_before_discount",
      "default": "public_reference_before_discount",
      "title": "Basis",
      "type": "string"
    },
    "as_of": {
      "title": "As Of",
      "type": "string"
    },
    "snapshot_id": {
      "title": "Snapshot Id",
      "type": "string"
    },
    "settlement_basis": {
      "const": "upstream_cost",
      "default": "upstream_cost",
      "title": "Settlement Basis",
      "type": "string"
    },
    "source_model_id": {
      "title": "Source Model Id",
      "type": "string"
    },
    "canonical_slug": {
      "title": "Canonical Slug",
      "type": "string"
    },
    "supported_durations": {
      "items": {
        "type": "integer"
      },
      "title": "Supported Durations",
      "type": "array"
    },
    "supported_resolutions": {
      "items": {
        "type": "string"
      },
      "title": "Supported Resolutions",
      "type": "array"
    },
    "supported_aspect_ratios": {
      "items": {
        "type": "string"
      },
      "title": "Supported Aspect Ratios",
      "type": "array"
    },
    "supported_frame_images": {
      "items": {
        "type": "string"
      },
      "title": "Supported Frame Images",
      "type": "array"
    },
    "seed_supported": {
      "title": "Seed Supported",
      "type": "boolean"
    },
    "reservation": {
      "$ref": "#/components/schemas/ModelCatalogVideoReservation"
    },
    "request_defaults": {
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "boolean"
          }
        ]
      },
      "title": "Request Defaults",
      "type": "object"
    },
    "rows": {
      "items": {
        "$ref": "#/components/schemas/ModelCatalogVideoReferenceRow"
      },
      "title": "Rows",
      "type": "array"
    },
    "pricing_type": {
      "const": "per_second",
      "title": "Pricing Type",
      "type": "string"
    }
  },
  "required": [
    "as_of",
    "snapshot_id",
    "source_model_id",
    "canonical_slug",
    "supported_durations",
    "supported_resolutions",
    "supported_aspect_ratios",
    "supported_frame_images",
    "seed_supported",
    "reservation",
    "request_defaults",
    "rows",
    "pricing_type"
  ],
  "title": "SecondVideoReference",
  "type": "object"
}
```

### ModelCatalogTokenVideoReference

`#/components/schemas/ModelCatalogTokenVideoReference`

```json
{
  "additionalProperties": false,
  "properties": {
    "version": {
      "const": 1,
      "default": 1,
      "title": "Version",
      "type": "integer"
    },
    "currency": {
      "const": "USD",
      "default": "USD",
      "title": "Currency",
      "type": "string"
    },
    "basis": {
      "const": "public_reference_before_discount",
      "default": "public_reference_before_discount",
      "title": "Basis",
      "type": "string"
    },
    "as_of": {
      "title": "As Of",
      "type": "string"
    },
    "snapshot_id": {
      "title": "Snapshot Id",
      "type": "string"
    },
    "settlement_basis": {
      "const": "upstream_cost",
      "default": "upstream_cost",
      "title": "Settlement Basis",
      "type": "string"
    },
    "source_model_id": {
      "title": "Source Model Id",
      "type": "string"
    },
    "canonical_slug": {
      "title": "Canonical Slug",
      "type": "string"
    },
    "supported_durations": {
      "items": {
        "type": "integer"
      },
      "title": "Supported Durations",
      "type": "array"
    },
    "supported_resolutions": {
      "items": {
        "type": "string"
      },
      "title": "Supported Resolutions",
      "type": "array"
    },
    "supported_aspect_ratios": {
      "items": {
        "type": "string"
      },
      "title": "Supported Aspect Ratios",
      "type": "array"
    },
    "supported_frame_images": {
      "items": {
        "type": "string"
      },
      "title": "Supported Frame Images",
      "type": "array"
    },
    "seed_supported": {
      "title": "Seed Supported",
      "type": "boolean"
    },
    "reservation": {
      "$ref": "#/components/schemas/ModelCatalogVideoReservation"
    },
    "request_defaults": {
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "boolean"
          }
        ]
      },
      "title": "Request Defaults",
      "type": "object"
    },
    "rows": {
      "items": {
        "$ref": "#/components/schemas/ModelCatalogVideoReferenceRow"
      },
      "title": "Rows",
      "type": "array"
    },
    "pricing_type": {
      "const": "video_token",
      "title": "Pricing Type",
      "type": "string"
    },
    "token_estimator": {
      "$ref": "#/components/schemas/ModelCatalogPixelFrameEstimator"
    }
  },
  "required": [
    "as_of",
    "snapshot_id",
    "source_model_id",
    "canonical_slug",
    "supported_durations",
    "supported_resolutions",
    "supported_aspect_ratios",
    "supported_frame_images",
    "seed_supported",
    "reservation",
    "request_defaults",
    "rows",
    "pricing_type",
    "token_estimator"
  ],
  "title": "TokenVideoReference",
  "type": "object"
}
```

### ModelCatalogVideoReferenceRow

`#/components/schemas/ModelCatalogVideoReferenceRow`

```json
{
  "additionalProperties": false,
  "properties": {
    "resolution": {
      "title": "Resolution",
      "type": "string"
    },
    "aspect_ratio": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Aspect Ratio"
    },
    "size": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Size"
    },
    "input_mode": {
      "enum": [
        "text_to_video",
        "image_to_video",
        "first_last_frame"
      ],
      "title": "Input Mode",
      "type": "string"
    },
    "generate_audio": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Generate Audio"
    },
    "unit": {
      "enum": [
        "output_video_second",
        "video_token"
      ],
      "title": "Unit",
      "type": "string"
    },
    "unit_price_usd": {
      "title": "Unit Price Usd",
      "type": "string"
    },
    "derived_output_second_usd": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Derived Output Second Usd"
    },
    "input_image_billing": {
      "enum": [
        "per_image",
        "included",
        "not_applicable"
      ],
      "title": "Input Image Billing",
      "type": "string"
    },
    "input_image_price_usd": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Input Image Price Usd"
    },
    "reservation_supported": {
      "const": true,
      "default": true,
      "title": "Reservation Supported",
      "type": "boolean"
    },
    "reservation_unavailable_reason": {
      "default": null,
      "title": "Reservation Unavailable Reason",
      "type": "null"
    },
    "max_duration_output_estimate_usd": {
      "title": "Max Duration Output Estimate Usd",
      "type": "string"
    }
  },
  "required": [
    "resolution",
    "input_mode",
    "unit",
    "unit_price_usd",
    "input_image_billing",
    "max_duration_output_estimate_usd"
  ],
  "title": "VideoReferenceRow",
  "type": "object"
}
```

### ModelCatalogVideoReservation

`#/components/schemas/ModelCatalogVideoReservation`

```json
{
  "additionalProperties": false,
  "properties": {
    "strategy": {
      "const": "requested_duration_or_model_max",
      "default": "requested_duration_or_model_max",
      "title": "Strategy",
      "type": "string"
    },
    "max_duration_seconds": {
      "exclusiveMinimum": 0,
      "title": "Max Duration Seconds",
      "type": "integer"
    },
    "output_count": {
      "const": 1,
      "default": 1,
      "title": "Output Count",
      "type": "integer"
    }
  },
  "required": [
    "max_duration_seconds"
  ],
  "title": "VideoReservation",
  "type": "object"
}
```

### ModelCatalogVideoSalePricing

`#/components/schemas/ModelCatalogVideoSalePricing`

```json
{
  "properties": {
    "currency": {
      "const": "USD",
      "title": "Currency",
      "type": "string"
    },
    "basis": {
      "const": "sale_before_discount",
      "title": "Basis",
      "type": "string"
    },
    "unit": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Primary billing unit, e.g. output_video_second or video_token",
      "title": "Unit"
    },
    "selection": {
      "anyOf": [
        {
          "const": "first_match",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "First matching rule wins; the final empty rule is the default",
      "title": "Selection"
    },
    "minimum_charge_usd": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Marked-up minimum charge in USD, before discount; null if none",
      "title": "Minimum Charge Usd"
    },
    "rows": {
      "description": "Per-spec sale unit prices. Final charge uses the upstream-reported usage, so the billed amount is upstream cost times markup_multiplier times discount_multiplier; a minimum billable duration may apply.",
      "items": {
        "$ref": "#/components/schemas/ModelCatalogVideoSalePricingRow"
      },
      "title": "Rows",
      "type": "array"
    }
  },
  "required": [
    "currency",
    "basis",
    "rows"
  ],
  "title": "VideoSalePricing",
  "type": "object"
}
```

### ModelCatalogVideoSalePricingRow

`#/components/schemas/ModelCatalogVideoSalePricingRow`

```json
{
  "properties": {
    "conditions": {
      "additionalProperties": true,
      "description": "Equality-condition summary; predicates retain the complete rule semantics",
      "title": "Conditions",
      "type": "object"
    },
    "predicates": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/components/schemas/ModelCatalogPriceCondition"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Ordered rule predicates including range comparisons",
      "title": "Predicates"
    },
    "rates": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "USD sale unit prices (purchase price times markup_multiplier), before discount",
      "title": "Rates",
      "type": "object"
    }
  },
  "required": [
    "conditions",
    "rates"
  ],
  "title": "VideoSalePricingRow",
  "type": "object"
}
```

### ModelCatalogVideoSecondPricing

`#/components/schemas/ModelCatalogVideoSecondPricing`

```json
{
  "properties": {
    "currency": {
      "const": "USD",
      "title": "Currency",
      "type": "string"
    },
    "basis": {
      "const": "sale_before_discount",
      "title": "Basis",
      "type": "string"
    },
    "pricing_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "per_second or video_token",
      "title": "Pricing Type"
    },
    "second_basis": {
      "description": "exact for per-second models; token_pixel_frames_estimate when per_second_usd is derived from the video_token rate (token price x resolution pixels x fps 24 / 1024). Token models still settle on reported token usage; per-second price is for display.",
      "enum": [
        "exact",
        "token_pixel_frames_estimate"
      ],
      "title": "Second Basis",
      "type": "string"
    },
    "rows": {
      "items": {
        "$ref": "#/components/schemas/ModelCatalogVideoSecondPricingRow"
      },
      "title": "Rows",
      "type": "array"
    }
  },
  "required": [
    "currency",
    "basis",
    "second_basis",
    "rows"
  ],
  "title": "VideoSecondPricing",
  "type": "object"
}
```

### ModelCatalogVideoSecondPricingRow

`#/components/schemas/ModelCatalogVideoSecondPricingRow`

```json
{
  "properties": {
    "resolution": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Resolution"
    },
    "aspect_ratio": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Aspect Ratio"
    },
    "input_mode": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Input Mode"
    },
    "generate_audio": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Generate Audio"
    },
    "predicates": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/components/schemas/ModelCatalogPriceCondition"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Full conditions for this per-second price row",
      "title": "Predicates"
    },
    "per_second_usd": {
      "description": "USD per output second (sale price before discount); markup already applied",
      "title": "Per Second Usd",
      "type": "string"
    },
    "input_image_usd": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD per input image (sale price before discount); null if none",
      "title": "Input Image Usd"
    },
    "estimated": {
      "description": "True when derived from a video_token rate via the pixel-frame formula",
      "title": "Estimated",
      "type": "boolean"
    }
  },
  "required": [
    "per_second_usd",
    "estimated"
  ],
  "title": "VideoSecondPricingRow",
  "type": "object"
}
```

### ModelCatalogVideoSpec

`#/components/schemas/ModelCatalogVideoSpec`

```json
{
  "additionalProperties": false,
  "properties": {
    "resolutions": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Resolutions"
    },
    "duration_seconds": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/ModelCatalogDurationSpec"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "aspect_ratios": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Aspect Ratios"
    },
    "input_modes": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Input Modes"
    },
    "audio": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/ModelCatalogAudioSpec"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "reference_limits": {
      "anyOf": [
        {
          "additionalProperties": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Reference Limits"
    },
    "constraints": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Nur-Daten-JSON-Schema für gültige Anfragekombinationen",
      "title": "Constraints"
    },
    "request_defaults": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Request Defaults"
    },
    "example_request": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Example Request"
    }
  },
  "title": "VideoSpec",
  "type": "object"
}
```

### ModelCatalogWalletPublicChannel

`#/components/schemas/ModelCatalogWalletPublicChannel`

```json
{
  "properties": {
    "reference_pricing": {
      "anyOf": [
        {
          "discriminator": {
            "mapping": {
              "per_second": "#/components/schemas/ModelCatalogSecondVideoReference",
              "video_token": "#/components/schemas/ModelCatalogTokenVideoReference"
            },
            "propertyName": "pricing_type"
          },
          "oneOf": [
            {
              "$ref": "#/components/schemas/ModelCatalogSecondVideoReference"
            },
            {
              "$ref": "#/components/schemas/ModelCatalogTokenVideoReference"
            }
          ]
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Public video reference before discount; not a final charge",
      "title": "Reference Pricing"
    },
    "sale_pricing": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/ModelCatalogVideoSalePricing"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Video sale unit prices (purchase price times markup_multiplier), before discount; null when no synchronized video rates are frozen"
    },
    "second_pricing": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/ModelCatalogVideoSecondPricing"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Per-second sale prices by resolution/mode (markup applied, before discount). For video_token models the per-second value is an estimate; settlement uses token usage"
    },
    "settlement_policy": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/ModelCatalogPublicSettlementPolicy"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Published primary pricing and missing-usage fallback policy"
    },
    "pricing_mode": {
      "default": "configured_rates",
      "description": "Konfigurierte Einheitstarife oder gemeldete Medienkosten multipliziert mit dem Verkaufsrabatt",
      "enum": [
        "configured_rates",
        "upstream_cost"
      ],
      "title": "Pricing Mode",
      "type": "string"
    },
    "code": {
      "title": "Code",
      "type": "string"
    },
    "name": {
      "title": "Name",
      "type": "string"
    },
    "service_tier": {
      "title": "Service Tier",
      "type": "string"
    },
    "region": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Region"
    },
    "is_default": {
      "title": "Is Default",
      "type": "boolean"
    },
    "runnable": {
      "title": "Runnable",
      "type": "boolean"
    },
    "standard_pricing": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/ModelCatalogCatalogPricing"
        },
        {
          "type": "null"
        }
      ],
      "description": "Standard-Einheitstarife vor dem Verkaufsrabatt; null für upstream_cost-Kanäle"
    },
    "discount_multiplier": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Exakter Verkaufsmultiplikator von 0 bis 1; einmal auf konfigurierte Tarife oder Upstream-Kosten anwenden",
      "title": "Discount Multiplier"
    },
    "markup_multiplier": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Sale markup (>= 1) applied to the purchase price or upstream cost to form the sale price, before discount_multiplier",
      "title": "Markup Multiplier"
    }
  },
  "required": [
    "code",
    "name",
    "service_tier",
    "region",
    "is_default",
    "runnable",
    "standard_pricing",
    "discount_multiplier"
  ],
  "title": "WalletPublicChannel",
  "type": "object"
}
```
