Laddro DocsLaddro Docs

Codigos de error

Codigos de error

Todos los errores de la API devuelven un formato JSON consistente:

{
  "error": "Not Found",
  "message": "Resume not found",
  "statusCode": 404
}

Codigos de estado HTTP

CodigoNombreDescripcion
200OKSolicitud exitosa
201CreatedRecurso creado exitosamente
400Bad RequestCuerpo de solicitud o parametros invalidos
401UnauthorizedClave API faltante o invalida
402Payment RequiredSin creditos disponibles. Compra mas o espera al reinicio mensual
403ForbiddenAccion no permitida (ej. BYOK sin suscripcion)
404Not FoundEl recurso no existe
413Payload Too LargeLa subida de archivo excede el limite de 10 MB
422Unprocessable EntityJSON valido pero semanticamente invalido (ej. descripcion de empleo muy corta)
429Too Many RequestsRate limit excedido. Reintenta despues del valor del header Retry-After
500Internal Server ErrorAlgo fallo de nuestro lado

Escenarios de error comunes

Clave API faltante

{
  "error": "Unauthorized",
  "message": "Missing x-api-key header",
  "statusCode": 401
}

Solucion: Agrega tu clave API al header x-api-key.

Clave API invalida

{
  "error": "Unauthorized",
  "message": "Invalid API key",
  "statusCode": 401
}

Solucion: Verifica tu clave en console.laddro.com. Las claves pueden haber sido revocadas.

Sin creditos

{
  "error": "Payment Required",
  "message": "No credits remaining. Purchase credits at console.laddro.com",
  "statusCode": 402
}

Solucion: Compra un paquete de creditos o espera al reinicio del plan gratuito.

BYOK sin suscripcion activa

{
  "error": "Forbidden",
  "message": "BYOK requires an active recurring Laddro subscription",
  "statusCode": 403
}

Solucion: Suscribete en laddro.com con un plan recurrente.

Clave de proveedor invalida

{
  "error": "Unprocessable Entity",
  "message": "API key validation failed for provider 'anthropic': invalid_api_key",
  "statusCode": 422
}

Solucion: Verifica tu clave API del proveedor. La API valida las claves con una llamada de prueba antes de guardarlas.

Estrategia de reintentos

Para errores 429 y 5xx, implementa backoff exponencial:

async function withRetry(fn: () => Promise<Response>, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      const response = await fn()
      if (response.status === 429) {
        const retryAfter = parseInt(response.headers.get('Retry-After') || '1')
        await new Promise(r => setTimeout(r, retryAfter * 1000))
        continue
      }
      return response
    } catch (error) {
      if (i === maxRetries - 1) throw error
      await new Promise(r => setTimeout(r, Math.pow(2, i) * 1000))
    }
  }
}

On this page