> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mka1.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Define un modelo de catálogo BYO

> Crea una definición BYO propiedad de la API sin activar su nombre.



## OpenAPI

````yaml https://apigw.mka1.com/speakeasy.json?language=es post /api/v1/llm/models/catalog
openapi: 3.1.1
info:
  title: MKA1 API
  version: 1.1.0
  description: >-
    La API MKA1 es una API RESTful que proporciona acceso a la plataforma MKA1.
    Aprende cómo comenzar con la API y el SDK de TypeScript
    [aquí](https://mka1.apidocumentation.com/guides/getting-started).
  license:
    name: Propietario
servers:
  - url: https://apigw.mka1.com
    description: MKA1 API Gateway
  - url: /
    description: Relative server URL (configurable via SDK constructor)
security: []
tags:
  - name: Resource Authorization
    description: >-
      Gestiona permisos para recursos LLM. Crea recursos, otorga/revoca permisos
      y elimina recursos. Solo los propietarios de recursos pueden otorgar,
      revocar o eliminar permisos.
    x-displayName: Autorización de Recursos
  - name: Embeddings
    description: >-
      Puntos finales de la API de incrustación de texto para generar
      representaciones vectoriales del texto. Crea incrustaciones semánticas
      para búsqueda, agrupamiento y coincidencia de similitudes utilizando
      varios modelos de incrustación.
    x-displayName: Incrustaciones
  - name: Feedback
    description: >-
      API de retroalimentación del usuario para calificar y comentar sobre las
      completaciones de chat. Recopila calificaciones de pulgares arriba/abajo y
      comentarios detallados para mejorar las respuestas del modelo y rastrear
      la satisfacción del usuario.
    x-displayName: Retroalimentación
  - name: Images
    description: >-
      Puntos finales de la API de generación de imágenes para crear imágenes a
      partir de descripciones de texto. Genera imágenes con control sobre el
      tamaño, la calidad y el estilo.
    x-displayName: Imágenes
  - name: MCP Vault
    description: >-
      API de bóveda MCP para almacenar configuraciones de servidor MCP propiedad
      del usuario y credenciales encriptadas. Los agentes hacen referencia a los
      ID de la bóveda para que los secretos se resuelvan solo en el momento de
      la ejecución de la herramienta.
    x-displayName: Bóveda MCP
  - name: Speech
    description: >-
      Puntos finales de la API de voz para el procesamiento de audio. Convierte
      texto en habla natural (TTS) o transcribe el habla a texto (STT) en
      diferentes idiomas.
    x-displayName: Discurso
  - name: Usage
    description: >-
      API de seguimiento de uso y análisis para monitorear el consumo de tokens,
      la cantidad de solicitudes y el análisis de costos. Visualiza estadísticas
      detalladas por usuario, modelo y período de tiempo.
    x-displayName: Uso
  - name: Extract
    description: >-
      API de extracción de datos estructurados para extraer información de
      archivos. Define esquemas JSON para extraer datos estructurados de
      imágenes, PDFs y documentos. Soporta plantillas de esquemas reutilizables.
    x-displayName: Extracción
  - name: Text Classification
    description: >-
      API de clasificación de texto para categorizar texto en etiquetas
      predefinidas. Utilice modelos de IA para clasificar el contenido del texto
      para análisis de sentimientos, categorización de temas y moderación de
      contenido.
    x-displayName: Clasificación de Texto
  - name: Responses
    description: >-
      API de respuestas impulsadas por agentes para crear agentes de IA con uso
      autónomo de herramientas. Crea asistentes conversacionales que pueden
      utilizar búsqueda en la web, operaciones con archivos, generación de
      imágenes, ejecución de código, simulación de uso de computadoras e
      integraciones de MCP. Soporta procesamiento en segundo plano, transmisión
      y seguimiento de estado en tiempo real.
    x-displayName: Respuestas
  - name: Files
    description: >-
      API de gestión de archivos para cargar, almacenar y gestionar archivos con
      expiración automática e integración con S3. Carga archivos que se pueden
      usar con Asistentes, Almacenes Vectoriales y otras funciones. Los archivos
      se almacenan en S3 con metadatos rastreados en PostgreSQL. Soporta la
      limpieza automática de archivos expirados.
    x-displayName: Archivos
  - name: Vector Stores
    description: >-
      API de almacenamiento de vectores para almacenar y buscar documentos
      utilizando incrustaciones. Crea almacenes de vectores, sube archivos con
      fragmentación automática y generación de incrustaciones, y realiza
      búsquedas semánticas. Los archivos se procesan de forma asincrónica
      utilizando flujos de trabajo de Temporal para durabilidad. Soporta
      limpieza automática de almacenes caducados y LanceDB para almacenamiento
      eficiente de vectores.
    x-displayName: Almacenes de Vectores
  - name: Conversations
    description: >-
      API de gestión de conversaciones para almacenar y recuperar el estado de
      la conversación a través de llamadas a la API de respuesta. Crea
      conversaciones, añade elementos (mensajes de usuario, mensajes del
      asistente, mensajes del sistema) y mantiene el historial de la
      conversación. Soporta seguimiento de metadatos y gestión del estado del
      diálogo en múltiples turnos.
    x-displayName: Conversaciones
  - name: Guardrails
    description: >-
      API de salvaguardias de seguridad de IA para configurar la moderación de
      contenido y las políticas de seguridad. Configura listas de palabras
      prohibidas, detección de inyección de mensajes y prevención de filtración
      de mensajes del sistema. Las salvaguardias se aplican a todas las
      solicitudes de una cuenta y se pueden probar antes del despliegue.
    x-displayName: Barandillas
  - name: Models
    description: >-
      API de listado de modelos para descubrir modelos disponibles. Devuelve IDs
      de modelos, propiedad y metadatos para todos los modelos registrados en la
      puerta de enlace.
    x-displayName: Modelos
  - name: Skills
    description: >-
      API de habilidades para gestionar paquetes de instrucciones y archivos
      versionados siguiendo el estándar de Habilidades del Agente. Crea,
      versiona y descarga paquetes de habilidades reutilizables que incluyen
      manifiestos SKILL.md para entornos de agentes.
    x-displayName: Habilidades
  - name: Chat Completions
    description: >-
      **Obsoleto: Usa la API de Respuestas (`/api/v1/llm/responses`) en su
      lugar.** Puntos finales de completación de chat con soporte para
      transmisión, llamadas a herramientas y múltiples proveedores.
    x-deprecated: true
    x-displayName: Completaciones de Chat
  - name: Batches
    x-displayName: Lotes
  - name: Evals
    x-displayName: Evaluaciones
  - name: Fine-Tuning
    x-displayName: Ajuste fino
  - name: Memory Stores
    x-displayName: Almacenes de memoria
  - name: Prompts
    x-displayName: Sugerencias
  - name: API Key
    x-displayName: Clave de API
  - name: Organization
    x-displayName: Organización
  - name: Cluster Admin
    x-displayName: Administrador de clúster
  - name: Sessions
    description: Crear, inspeccionar, acceder y terminar sesiones de sandbox.
    x-displayName: Sesiones
  - name: Browser
    description: >-
      Conéctate a las sesiones del navegador a través del proxy del puerto de la
      puerta de enlace. Las sesiones del navegador exponen un punto final del
      Protocolo de DevTools de Chrome en el puerto 9222.
    x-displayName: Navegador
  - name: Execution
    description: >-
      Ejecutar comandos de shell y código dentro de una sesión de sandbox
      existente.
    x-displayName: Ejecución
  - name: Workspace
    description: >-
      Inspeccionar el manifiesto del espacio de trabajo, transferir archivos o
      archivos comprimidos, y descargar artefactos generados.
    x-displayName: Espacio de trabajo
  - name: Sandbox Usage
    description: >-
      Agrega estadísticas de uso de sandbox entre sesiones, ejecución y
      operaciones del espacio de trabajo.
    x-displayName: Uso de Sandbox
  - name: Sandbox Pricing
    description: >-
      Gestión de administrador de clúster de la tarjeta de tarifas de cómputo
      del entorno aislado utilizada para el gasto presupuestado.
    x-displayName: Precios de Sandbox
  - name: Agents
    description: Crea y gestiona definiciones de agentes reutilizables.
    x-displayName: Agentes
  - name: Agent Versions
    description: >-
      Inspeccionar el historial de configuración de un agente y revertir a una
      versión anterior.
    x-displayName: Versiones de Agente
  - name: Agent Runs
    description: >-
      Ejecutar agentes guardados e inspeccionar los resultados de ejecución
      persistidos.
    x-displayName: Ejecuta Agentes
  - name: Agent Connectors
    description: >-
      Conecta agentes guardados a canales de mensajería externos como Telegram,
      incluyendo intercambio de texto, fotos y documentos compatibles.
    x-displayName: Conectores de agentes
  - name: Agent Schedules
    description: >-
      Crea y gestiona ejecuciones de agentes programadas o recurrentes
      guardadas.
    x-displayName: Horarios de Agentes
  - name: schema-4_other
    x-displayName: otro
  - name: Budgets
    x-displayName: Presupuestos
  - name: Settings
    x-displayName: Configuración
  - name: Deployments
    description: Servidores de inferencia de larga duración.
    x-displayName: Implementaciones
  - name: Fine-Tune Jobs
    description: Enviar, monitorear y cancelar trabajos de ajuste fino.
    x-displayName: Trabajos de ajuste fino
  - name: Container Images
    description: Imágenes de contenedor personalizadas para implementaciones y trabajos.
    x-displayName: Imágenes de contenedores
  - name: Serving Models
    description: Modelos registrados para implementación y ajuste fino.
    x-displayName: Sirviendo modelos
  - name: Volumes
    description: Almacenamiento persistente para pesos y puntos de control.
    x-displayName: Volúmenes
  - name: Secrets
    description: Credenciales inyectadas en tus cargas de trabajo.
    x-displayName: Secretos
  - name: Accelerators
    description: Tipos de aceleradores disponibles (GPU, NPU, TPU).
    x-displayName: Aceleradores
paths:
  /api/v1/llm/models/catalog:
    post:
      tags:
        - Models
      summary: Define un modelo de catálogo BYO
      description: Crea una definición BYO propiedad de la API sin activar su nombre.
      operationId: addModelCatalogEntry
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddCatalogModelRequest'
            example:
              id: meetkai:custom-chat-v1
              provider: openai-compatible
              modelId: custom-chat-v1
              displayName: Custom Chat v1
              baseUrl: https://models.example.com/v1
              apiFormat: responses
              apiProviderType: openai
              created: 1704067200
              auth:
                type: api-key
                value: sk-provider-key
              capabilities:
                modalities:
                  input:
                    - text
                  output:
                    - text
      responses:
        '200':
          description: Está bien
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogEntry'
              example:
                model_id: meetkai:custom-chat-v1
                source: byo
                origin: api
                activation_state: available
                blocker_source: null
                activated_by: null
                activated_at: null
                provider: openai-compatible
                provider_model_id: custom-chat-v1
                definition:
                  id: meetkai:custom-chat-v1
                  provider: openai-compatible
                  modelId: custom-chat-v1
                  displayName: Custom Chat v1
                  baseUrl: https://models.example.com/v1
                  apiFormat: responses
                  apiProviderType: openai
                  created: 1704067200
                  auth:
                    type: api-key
                    value: '****'
                  capabilities:
                    modalities:
                      input:
                        - text
                      output:
                        - text
                  source: database
                  immutable: false
                health:
                  is_available: true
                  last_health_check: null
                  error: null
                created_at: 1704067200000
                updated_at: 1704067200000
                effective_price:
                  rates: null
                  source: unpriced
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: csharp
          label: CSharp (SDK)
          source: |-
            using MeetKai.MKA1;
            using MeetKai.MKA1.Types.Components;
            using System.Collections.Generic;

            var sdk = new SDK(bearerAuth: "<YOUR_BEARER_TOKEN_HERE>");

            AddCatalogModelRequest req = new AddCatalogModelRequest() {
                Id = "meetkai:custom-chat-v1",
                Provider = "openai-compatible",
                ModelId = "custom-chat-v1",
                DisplayName = "Custom Chat v1",
                BaseUrl = "https://models.example.com/v1",
                ApiFormat = AutoEndpoint.Responses,
                ApiProviderType = AddCatalogModelRequestApiProviderType.Openai,
                Created = 1704067200,
                Auth = AddCatalogModelRequestAuthUnion.CreateApiKey(
                    new AddCatalogModelRequestAuth1() {
                        Value = "sk-provider-key",
                    }
                ),
                Capabilities = new AddCatalogModelRequestCapabilities() {
                    Modalities = new AddCatalogModelRequestModalities() {
                        Input = new List<AddCatalogModelRequestInput>() {
                            AddCatalogModelRequestInput.Text,
                        },
                        Output = new List<AddCatalogModelRequestOutput>() {
                            AddCatalogModelRequestOutput.Text,
                        },
                    },
                    Reasoning = true,
                },
            };

            var res = await sdk.Llm.Models.AddCatalogEntryAsync(req);

            // handle response
        - lang: python
          label: Python (SDK)
          source: |-
            from meetkai_mka1 import SDK


            with SDK(
                bearer_auth="<YOUR_BEARER_TOKEN_HERE>",
            ) as sdk:

                res = sdk.llm.models.add_catalog_entry(id="meetkai:custom-chat-v1", provider="openai-compatible", model_id="custom-chat-v1", api_format="responses", api_provider_type="openai", created=1704067200, auth={
                    "type": "api-key",
                    "value": "sk-provider-key",
                }, capabilities={
                    "modalities": {
                        "input": [
                            "text",
                        ],
                        "output": [
                            "text",
                        ],
                    },
                    "reasoning": True,
                }, display_name="Custom Chat v1", base_url="https://models.example.com/v1")

                # Handle response
                print(res)
        - lang: typescript
          label: Typescript (SDK)
          source: |-
            import { SDK } from "@meetkai/mka1";

            const sdk = new SDK({
              bearerAuth: "<YOUR_BEARER_TOKEN_HERE>",
            });

            async function run() {
              const result = await sdk.llm.models.addCatalogEntry({
                id: "meetkai:custom-chat-v1",
                provider: "openai-compatible",
                modelId: "custom-chat-v1",
                displayName: "Custom Chat v1",
                baseUrl: "https://models.example.com/v1",
                apiFormat: "responses",
                apiProviderType: "openai",
                created: 1704067200,
                auth: {
                  type: "api-key",
                  value: "sk-provider-key",
                },
                capabilities: {
                  modalities: {
                    input: [
                      "text",
                    ],
                    output: [
                      "text",
                    ],
                  },
                  reasoning: true,
                },
              });

              console.log(result);
            }

            run();
components:
  schemas:
    AddCatalogModelRequest:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/ModelId'
        provider:
          type: string
          minLength: 1
          maxLength: 100
        modelId:
          type: string
          minLength: 1
          maxLength: 255
        displayName:
          type: string
        baseUrl:
          type: string
          format: uri
        apiFormat:
          $ref: '#/components/schemas/AutoEndpoint'
        apiProviderType:
          enum:
            - groq
            - azure
            - meetkai
            - meetkaiGateway
            - fal
            - openai
          type: string
        created:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        auth:
          anyOf:
            - type: object
              properties:
                type:
                  const: api-key
                value:
                  type: string
                envVar:
                  type: string
                headerName:
                  type: string
              required:
                - type
              additionalProperties: false
            - type: object
              properties:
                type:
                  const: custom-headers
                headers:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    type: string
                envVars:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    type: string
              required:
                - type
                - headers
              additionalProperties: false
            - type: object
              properties:
                type:
                  const: none
              required:
                - type
              additionalProperties: false
            - type: object
              properties:
                type:
                  const: composite
                strategies:
                  type: array
                  minItems: 1
                  items:
                    anyOf:
                      - type: object
                        properties:
                          type:
                            const: api-key
                          value:
                            type: string
                          envVar:
                            type: string
                          headerName:
                            type: string
                        required:
                          - type
                        additionalProperties: false
                      - type: object
                        properties:
                          type:
                            const: custom-headers
                          headers:
                            type: object
                            propertyNames:
                              type: string
                            additionalProperties:
                              type: string
                          envVars:
                            type: object
                            propertyNames:
                              type: string
                            additionalProperties:
                              type: string
                        required:
                          - type
                          - headers
                        additionalProperties: false
                      - type: object
                        properties:
                          type:
                            const: none
                        required:
                          - type
                        additionalProperties: false
                      - type: object
                        properties:
                          type:
                            const: composite
                          strategies:
                            type: array
                            minItems: 1
                            items:
                              anyOf:
                                - type: object
                                  properties:
                                    type:
                                      const: api-key
                                    value:
                                      type: string
                                    envVar:
                                      type: string
                                    headerName:
                                      type: string
                                  required:
                                    - type
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    type:
                                      const: custom-headers
                                    headers:
                                      type: object
                                      propertyNames:
                                        type: string
                                      additionalProperties:
                                        type: string
                                    envVars:
                                      type: object
                                      propertyNames:
                                        type: string
                                      additionalProperties:
                                        type: string
                                  required:
                                    - type
                                    - headers
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    type:
                                      const: none
                                  required:
                                    - type
                                  additionalProperties: false
                                - type: object
                                  properties:
                                    type:
                                      const: composite
                                    strategies: {}
                                  required:
                                    - type
                                  additionalProperties: false
                        required:
                          - type
                          - strategies
                        additionalProperties: false
              required:
                - type
                - strategies
              additionalProperties: false
        capabilities:
          type: object
          properties:
            modalities:
              type: object
              properties:
                input:
                  type: array
                  minItems: 1
                  items:
                    enum:
                      - text
                      - image
                      - audio
                      - video
                    type: string
                output:
                  type: array
                  minItems: 1
                  items:
                    enum:
                      - text
                      - image
                      - audio
                      - video
                    type: string
              required:
                - input
                - output
              additionalProperties: false
            reasoning:
              type: boolean
            supportedBase64Formats:
              type: array
              items:
                type: string
            supportsCompletionVideoUrlMessage:
              type: boolean
            supportsTemperature:
              type: boolean
            supportsTopP:
              type: boolean
            maxImageResolution:
              type: object
              properties:
                maxWidth:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                  exclusiveMinimum: 0
                maxHeight:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                  exclusiveMinimum: 0
              required:
                - maxWidth
                - maxHeight
              additionalProperties: false
            minImageResolution:
              type: object
              properties:
                maxWidth:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                  exclusiveMinimum: 0
                maxHeight:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                  exclusiveMinimum: 0
              required:
                - maxWidth
                - maxHeight
              additionalProperties: false
          required:
            - modalities
            - reasoning
          additionalProperties: false
        contextWindow:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
          exclusiveMinimum: 0
        rpm:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
          exclusiveMinimum: 0
        rateLimits:
          type: array
          items:
            type: object
            properties:
              scope:
                enum:
                  - global
                  - org
                  - user
                  - apiKey
                  - externalUser
                type: string
              rpm:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
                exclusiveMinimum: 0
              duration:
                type: integer
                minimum: -9007199254740991
                maximum: 9007199254740991
                exclusiveMinimum: 0
              queue:
                type: object
                properties:
                  maxDepth:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 1000
                    exclusiveMinimum: 0
                  maxWaitMs:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 120000
                    exclusiveMinimum: 0
                required:
                  - maxDepth
                  - maxWaitMs
                additionalProperties: false
            required:
              - scope
              - rpm
            additionalProperties: false
        concurrency:
          type: object
          properties:
            max:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
              exclusiveMinimum: 0
            maxWaitMs:
              type: integer
              minimum: -9007199254740991
              maximum: 120000
              exclusiveMinimum: 0
          required:
            - max
          additionalProperties: false
        requestTimeoutMs:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
          exclusiveMinimum: 0
        maxRetries:
          type: integer
          minimum: 0
          maximum: 9007199254740991
        defaultParams:
          type: object
          properties:
            temperature:
              type: number
              minimum: 0
              maximum: 2
            topP:
              type: number
              minimum: 0
              maximum: 1
            presencePenalty:
              type: number
              minimum: -2
              maximum: 2
            frequencyPenalty:
              type: number
              minimum: -2
              maximum: 2
          additionalProperties: false
        rerouteRules:
          type: array
          items:
            type: object
            properties:
              trigger:
                anyOf:
                  - type: object
                    properties:
                      type:
                        const: input-modality
                      modality:
                        enum:
                          - text
                          - image
                          - audio
                          - video
                        type: string
                    required:
                      - type
                      - modality
                    additionalProperties: false
                  - type: object
                    properties:
                      type:
                        const: base64-input
                    required:
                      - type
                    additionalProperties: false
                  - type: object
                    properties:
                      type:
                        const: context-exceeded
                    required:
                      - type
                    additionalProperties: false
                  - type: object
                    properties:
                      type:
                        const: error-fallback
                    required:
                      - type
                    additionalProperties: false
              targetModelId:
                type: string
              preserveParams:
                type: boolean
              log:
                type: boolean
            required:
              - trigger
              - targetModelId
            additionalProperties: false
        hidden:
          type: boolean
        embeddingLimits:
          type: object
          properties:
            maxBatchSize:
              type: integer
              minimum: -9007199254740991
              maximum: 9007199254740991
              exclusiveMinimum: 0
            dimensions:
              anyOf:
                - type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                  exclusiveMinimum: 0
                - type: object
                  properties:
                    min:
                      type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                      exclusiveMinimum: 0
                    max:
                      type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                      exclusiveMinimum: 0
                    default:
                      type: integer
                      minimum: -9007199254740991
                      maximum: 9007199254740991
                      exclusiveMinimum: 0
                  required:
                    - min
                    - max
                    - default
                  additionalProperties: false
          additionalProperties: false
        healthCheck:
          anyOf:
            - type: object
              properties:
                mode:
                  const: 'off'
              required:
                - mode
              additionalProperties: false
            - type: object
              properties:
                mode:
                  const: preflight
                path:
                  type: string
                  minLength: 1
                method:
                  enum:
                    - GET
                    - HEAD
                  type: string
                timeoutMs:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                  exclusiveMinimum: 0
                cacheTtlSeconds:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                  exclusiveMinimum: 0
              required:
                - mode
                - path
              additionalProperties: false
            - type: object
              properties:
                mode:
                  const: periodic
                intervalSeconds:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                  exclusiveMinimum: 0
                path:
                  type: string
                  minLength: 1
                method:
                  enum:
                    - GET
                    - HEAD
                  type: string
                timeoutMs:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                  exclusiveMinimum: 0
                cacheTtlSeconds:
                  type: integer
                  minimum: -9007199254740991
                  maximum: 9007199254740991
                  exclusiveMinimum: 0
              required:
                - mode
                - intervalSeconds
                - path
              additionalProperties: false
      required:
        - id
        - provider
        - modelId
        - apiFormat
        - apiProviderType
        - created
        - auth
        - capabilities
    CatalogEntry:
      type: object
      properties:
        model_id:
          type: string
        source:
          $ref: '#/components/schemas/RegistrySource'
        origin:
          anyOf:
            - $ref: '#/components/schemas/RegistryModelOrigin'
            - type: 'null'
        activation_state:
          $ref: '#/components/schemas/CatalogActivationState'
        blocker_source:
          anyOf:
            - $ref: '#/components/schemas/RegistrySource'
            - type: 'null'
        activated_by:
          anyOf:
            - type: string
            - type: 'null'
        activated_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
        provider:
          type: string
        provider_model_id:
          type: string
        definition:
          type: object
          propertyNames:
            type: string
          additionalProperties: {}
        health:
          $ref: '#/components/schemas/CatalogHealth'
        created_at:
          anyOf:
            - type: number
            - type: 'null'
        updated_at:
          anyOf:
            - type: number
            - type: 'null'
        effective_price:
          $ref: '#/components/schemas/CatalogPricePreview'
      required:
        - model_id
        - source
        - origin
        - activation_state
        - blocker_source
        - activated_by
        - activated_at
        - provider
        - provider_model_id
        - definition
        - health
        - created_at
        - updated_at
        - effective_price
    ModelId:
      type: string
      minLength: 1
      maxLength: 255
    AutoEndpoint:
      enum:
        - responses
        - completions
        - embeddings
        - images
        - transcriptions
        - tts
      type: string
    RegistrySource:
      enum:
        - byo
        - serving
        - cluster
      type: string
    RegistryModelOrigin:
      enum:
        - api
        - yaml
      type: string
    CatalogActivationState:
      enum:
        - active
        - available
        - available_name_blocked
      type: string
    CatalogHealth:
      type: object
      properties:
        is_available:
          type: boolean
        last_health_check:
          anyOf:
            - type: number
            - type: 'null'
        error:
          anyOf:
            - type: string
            - type: 'null'
      required:
        - is_available
        - last_health_check
        - error
    CatalogPricePreview:
      type: object
      properties:
        rates:
          anyOf:
            - type: object
              properties:
                input_tokens:
                  type: number
                  minimum: 0
                  maximum: 1000000000
                output_tokens:
                  type: number
                  minimum: 0
                  maximum: 1000000000
                cached_tokens:
                  type: number
                  minimum: 0
                  maximum: 1000000000
                reasoning_tokens:
                  type: number
                  minimum: 0
                  maximum: 1000000000
                characters:
                  type: number
                  minimum: 0
                  maximum: 1000000000
                seconds:
                  type: number
                  minimum: 0
                  maximum: 1000000000
                image:
                  type: number
                  minimum: 0
                  maximum: 1000000000
                image_tiers:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties:
                    type: number
                    minimum: 0
                    maximum: 1000000000
                searches:
                  type: number
                  minimum: 0
                  maximum: 1000000000
              additionalProperties: false
            - type: 'null'
        source:
          enum:
            - org_override
            - cluster_default
            - unpriced
          type: string
      required:
        - rates
        - source
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        Gateway auth: send `Authorization: Bearer <mka1-api-key>`. For
        multi-user server-side integrations, you can also send `X-On-Behalf-Of:
        <external-user-id>`.

````