Contrato de error#
Los errores usan { error: { message, type, code } }. Nunca reintente indefinidamente.
| HTTP | Código | Qué hacer |
|---|---|---|
| 400 | invalid_request | Corrija JSON, campos obligatorios o límites de tokens. |
| 401 | invalid_api_key | Verifique la clave y el encabezado Bearer; rote si está revocada. |
| 402 | insufficient_balance | Verifique la recarga calificada confirmada, el crédito disponible y el presupuesto de clave; cada nueva recarga debe ser de al menos USD 100. |
| 403 | model_not_allowed | Actualice la lista permitida de claves o elija un modelo permitido. |
| 404 | model_not_found | Obtenga /v1/models y use un ID exacto. |
| 409 | pending_reconciliation | Espere la conciliación de uso antes de reintentar la operación. |
| 413 | request_too_large | Divida la entrada o use un contexto más grande. |
| 422 | unsupported_feature | Elija una implementación que admita la función. |
| 429 | quota_exceeded | Respete Retry-After si se proporciona y use reintentos limitados; no se ofrece cuota de prueba gratuita pública. |
| 502 | upstream_error | Reintente con retroceso limitado; verifique el estado. |
| 503 | service_unavailable | Verifique el estado del servicio y la disponibilidad del modelo antes de reintentar. |
Evita el trabajo duplicado#
No asumas que una solicitud de inferencia fue gratuita porque se cortó la conexión. Verifica tus registros de uso. Los depósitos son idempotentes de forma independiente por la identidad de transacción del proveedor.
Obtén ayuda#
Usa la guía de soporte para diagnosticar el paso que falla y prepara un informe con el código de error, la hora UTC, el modelo y una reproducción sintética. La herramienta de informe local no envía un ticket. Mantén las credenciales y el contenido del cliente fuera del informe.
Ejemplo de solicitud
curl https://weightsapi.com/v1/chat/completions \
-H "Authorization: Bearer $WEIGHTSAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen3-32B",
"messages": [
{
"role": "user",
"content": "Hello!"
}
],
"stream": true
}'