# 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` — Producción

## 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": "Solo recomendación para el cliente a nivel de modelo; null en modelos que no son de chat; no restringe los protocolos que se pueden llamar",
      "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": "Solo en el idioma seleccionado; summary/description/best_for permanecen en el modelo"
    },
    "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": "Objeto JSON de razonamiento del upstream; conserva los campos desconocidos; null si no está disponible",
      "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 por token de entrada; null significa no disponible, 0 significa gratis",
      "title": "Prompt"
    },
    "completion": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD por token de salida",
      "title": "Completion"
    },
    "audio": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD por token de audio de entrada",
      "title": "Audio"
    },
    "input_audio_cache": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD por token de audio en caché",
      "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 por token de razonamiento",
      "title": "Internal Reasoning"
    },
    "input_cache_read": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD por token de entrada en caché",
      "title": "Input Cache Read"
    },
    "input_cache_write": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD por token de escritura de caché",
      "title": "Input Cache Write"
    },
    "input_cache_write_1h": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD por token de escritura de caché de 1 hora; independiente de las escrituras con el TTL predeterminado",
      "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 por imagen de entrada",
      "title": "Input Image"
    },
    "output_image": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD por imagen generada",
      "title": "Output Image"
    },
    "input_image_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD por token de imagen de entrada",
      "title": "Input Image Token"
    },
    "output_image_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD por token de imagen de salida",
      "title": "Output Image Token"
    },
    "input_video_second": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD por segundo de vídeo de entrada",
      "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 por segundo de vídeo generado",
      "title": "Output Video Second"
    },
    "request": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "USD por solicitud",
      "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 por solicitud de búsqueda web",
      "title": "Web Search"
    },
    "tiers": {
      "description": "Conserva el orden; el primer nivel coincidente sustituye las tarifas base",
      "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": "Contexto de precios de Felo, por ejemplo 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": "Hora de actualización del documento en el idioma seleccionado",
      "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": "Esquema JSON solo de datos para combinaciones de solicitud válidas",
      "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": "Tarifas unitarias configuradas, o el costo de medio reportado multiplicado por el descuento de venta",
      "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": "Tarifas unitarias estándar antes del descuento de venta; null en los canales upstream_cost"
    },
    "discount_multiplier": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Multiplicador de venta exacto de 0 a 1; se aplica una vez a las tarifas configuradas o al costo upstream",
      "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"
}
```
