Skip to main content
Todos los modelos de Router usan POST /v2/models/{provider}/{model} con su propio cuerpo JSON. Esta página cubre los encabezados compartidos entre modelos; la referencia de API enumera el contrato generado. Los SDK de Comfy (comfy-sdk para Python, @comfyorg/sdk para TypeScript) gestionan la autenticación y generan claves de idempotencia. Exponen metadatos de respuesta seleccionados como se describe a continuación. Los clientes HTTP directos deben enviar y leer los encabezados por su cuenta.

Encabezados de la solicitud

string
Una clave API de Comfy, comfyui-..., creada en tu espacio de trabajo de Comfy. Usa el acceso a modelos y el saldo de créditos de tu espacio de trabajo. También puedes enviarla como Authorization: Bearer comfyui-...; si ambos encabezados están presentes, gana X-API-Key.
string
Bearer <token>. Un valor comfyui- es una clave API. Cualquier otro valor se trata como un JWT de Comfy Cloud.
string
Identifica una generación lógica. Genera y guarda un UUID antes de la llamada y luego reutilízalo para los reintentos de la solicitud sin cambios. La clave puede reproducir un resultado o recopilar el trabajo aceptado durante un máximo de 24 horas. Los SDK generan claves y te permiten usar las tuyas (idempotency_key= en Python, idempotencyKey en TypeScript). Consulta resultados de reintento para conflictos, caducidad y resultados no reproducibles.
string
application/json. Envía la entrada JSON nativa del modelo. Los campos y los requisitos de validación varían según el modelo; consulta Uso de la API del Router.
string
Solo en GET /v2/models/{provider}/{model}/openapi.json. Envía el ETag que tienes de un 200 anterior; cuando aún coincide, la respuesta es un 304 sin cuerpo con el mismo ETag. Guarda en caché el esquema de un modelo durante la vida de tu proceso y revalídalo de esta forma en lugar de volver a leerlo antes de cada llamada.

Encabezados de respuesta

string
requerido
Identifica esta solicitud HTTP. Inclúyelo cuando contactes a soporte. TypeScript lo expone como requestId; Python expone request_id en los errores.
string
La categoría de error legible por máquina. En un 422, usa este encabezado porque el cuerpo de validación tiene detail[] y no tiene error_type. Combínalo con el estado HTTP para decidir qué hacer. Trata un valor desconocido como internal_error para el flujo de control y consérvalo para el diagnóstico.
boolean
Presente y true cuando Router entrega un resultado almacenado en lugar de ejecutar el modelo otra vez. No está presente en una ejecución nueva. En la ruta de envío en cola, un 201 reproducido devuelve el identificador de la solicitud original en lugar de encolar una segunda ejecución.
integer
Segundos que debes esperar antes de reintentar. En 409 / concurrency_limit_exceeded o 504 / deadline_exceeded, reintenta la misma solicitud y la misma clave después de la espera. En 429 / rate_limited, indica cuándo se restablece el límite de tasa. En la lectura del estado de una solicitud en cola y en la lectura de su resultado 202, es la sugerencia de Router sobre cuándo vale la pena volver a consultar.
integer
El límite máximo del gasto de socio comprometido en llamadas que aún se están ejecutando, en centavos de USD. Una compuerta de gasto con aplicación activa puede devolverlo en las respuestas admitidas y en sus rechazos 429. No está presente cuando la compuerta no está aplicando el límite o cuando otro control rechazó la solicitud.
integer
Centavos de USD comprometidos actualmente en llamadas en curso. Una respuesta admitida incluye su propia llamada; un 429 excluye la llamada rechazada. Se envía junto con X-Committed-Spend-Limit.
integer
Centavos de USD que quedan por debajo del límite de gasto comprometido. Puede ser positivo en un rechazo cuando la llamada solicitada cuesta más que la cantidad restante.
string
En GET /v2/models/{provider}/{model}/openapi.json. Guárdalo y envíalo de vuelta como If-None-Match para revalidar un esquema en caché.
string
En la ruta del esquema: private, must-revalidate. Mantén la respuesta en una caché privada y revalida las copias obsoletas con el ETag.

Códigos de estado con dos significados

Tres estados se comparten entre dos categorías, y el encabezado es lo que permite distinguirlos:

Próximos pasos