Rueda Lens

Referencia API

POST /v1/analyze

Analiza imágenes de neumáticos y vehículos para identificar información del neumático y del vehículo.

Analiza imágenes de neumáticos y vehículos mediante IA avanzada para identificar la marca, el modelo, el año, los acabados (trims) y las especificaciones de los neumáticos del vehículo.

Endpoint

POST https://api.ruedalens.com/v1/analyze

Autenticación

Requiere una clave de API válida en la cabecera Authorization.

Authorization: Bearer rdlns_sk_...

Modos de reconocimiento

La API soporta dos modos de reconocimiento, seleccionables por solicitud mediante el parámetro mode:

ModoImágenes requeridasPrecisión medida neumáticoPrecisión modelo vehículoIdeal para
single1 (solo neumático)AltaAltaIdentificación de neumáticos cuando el vehículo es secundario, o UX simplificada con una sola foto
dual2 (neumático + vehículo)AltaMuy altaMáxima precisión cuando la identificación del vehículo es prioritaria

Elegir un modo

Usa modo dual cuando identificar el modelo del vehículo sea crítico para tu caso de uso. Usa modo simple cuando los datos del neumático sean la necesidad principal y quieras una experiencia de usuario más sencilla con una sola foto.

La respuesta siempre incluye un campo mode confirmando qué modo se utilizó.

Solicitud

Cabeceras

CabeceraValorRequerida
AuthorizationBearer rdlns_sk_...
Content-Typeapplication/json

Parámetros del cuerpo

ParámetroTipoRequeridoDescripción
modestringModo de reconocimiento: "single" o "dual".
imagestringCondicionalImagen del neumático codificada en Base64. Requerida en modo simple.
tireImagestringCondicionalImagen del neumático codificada en Base64. Requerida en modo dual.
carImagestringCondicionalImagen del vehículo codificada en Base64. Requerida en modo dual.

Ejemplo de solicitud

curl -X POST https://api.ruedalens.com/v1/analyze \
  -H "Authorization: Bearer rdlns_sk_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "single",
    "image": "/9j/4AAQSkZJRg..."
  }'

Respuesta

Éxito — 200 OK

{
  "success": true,
  "requestId": "cmlecazi4000111qu590n9v6i",
  "mode": "dual",
  "data": {
    "vehicles": [
      {
        "confidence": 0.98,
        "brand": "Lexus",
        "model": "NX",
        "trims": ["300h", "300"],
        "start_year": 2017,
        "end_year": 2021,
        "current_tire": {
          "tire_brand": "Bridgestone",
          "tire_model": "Dueler H/L 33",
          "width": 225,
          "aspect_ratio": 60,
          "diameter": 18,
          "load_index": "100",
          "speed_index": "H",
          "structure": "R",
          "runflat": null,
          "xl": null,
          "3pmsf": null,
          "tire_size": "225/60R18 100H"
        },
        "oe_front_tire": {
          "width": 225,
          "aspect_ratio": 60,
          "diameter": 18,
          "load_index": "100",
          "speed_index": "H",
          "structure": "R",
          "runflat": false,
          "xl": false,
          "tire_size": "225/60R18 100H"
        },
        "oe_rear_tire": {
          "width": 225,
          "aspect_ratio": 60,
          "diameter": 18,
          "load_index": "100",
          "speed_index": "H",
          "structure": "R",
          "runflat": false,
          "xl": false,
          "tire_size": "225/60R18 100H"
        },
        "pressure_front": 2.2,
        "pressure_rear": 2.2
      }
    ]
  },
  "metrics": {
    "executionTimeMs": 10364
  },
  "timestamp": "2026-02-08T22:54:03.962Z"
}

Campos de la respuesta

CampoTipoDescripción
successbooleanIndica si la solicitud fue exitosa
requestIdstringIdentificador único de la solicitud para seguimiento y depuración
modestringModo de reconocimiento utilizado para esta solicitud ("single" o "dual")
data.vehiclesarrayLista de coincidencias de vehículos identificados (ordenadas por confianza)
data.vehicles[].confidencenumberNivel de confianza de la IA (0.0 a 1.0)
data.vehicles[].brandstringFabricante del vehículo
data.vehicles[].modelstringModelo base del vehículo
data.vehicles[].trimsstring[]Niveles de acabado disponibles para este modelo
data.vehicles[].start_yearnumberPrimer año de producción de esta generación
data.vehicles[].end_yearnumberÚltimo año de producción de esta generación
data.vehicles[].current_tire.tire_brandstring|nullFabricante del neumático leído del flanco (p. ej., "Michelin"). Null si no es legible.
data.vehicles[].current_tire.tire_modelstring|nullLínea de producto del neumático leída del flanco (p. ej., "Pilot Sport 4"). Null si no es legible.
data.vehicles[].current_tireobjectEspecificación del neumático detectada en el flanco
data.vehicles[].oe_front_tireobjectEspecificación del neumático original (OE) delantero
data.vehicles[].oe_rear_tireobjectEspecificación del neumático original (OE) trasero
data.vehicles[].pressure_frontnumberPresión recomendada del neumático delantero (bar)
data.vehicles[].pressure_rearnumberPresión recomendada del neumático trasero (bar)
metrics.executionTimeMsnumberTiempo total de procesamiento en milisegundos
timestampstringMarca temporal ISO 8601 de la respuesta

Estructura del objeto de neumático

Cada objeto de neumático (current_tire, oe_front_tire, oe_rear_tire) contiene los campos siguientes. Los campos tire_brand y tire_model son exclusivos de current_tire y no están presentes en los objetos de neumáticos OE.

CampoTipoDescripción
tire_brandstring|nullSolo current_tire. Fabricante del neumático leído del flanco (p. ej., "Michelin", "Continental"). Null si no es legible.
tire_modelstring|nullSolo current_tire. Línea de producto del neumático leída del flanco (p. ej., "Pilot Sport 4", "PremiumContact 6"). Null si no es legible.
widthnumberAncho del neumático en milímetros (p. ej., 225)
aspect_rationumberAltura del perfil como porcentaje del ancho (p. ej., 60)
diameternumberDiámetro de la llanta en pulgadas (p. ej., 18)
load_indexstringÍndice de carga (p. ej., "100")
speed_indexstringÍndice de velocidad máxima (p. ej., "H")
structurestringTipo de construcción del neumático (normalmente "R" radial)
runflatboolean|nullIndica si el neumático es run-flat
xlboolean|nullIndica si el neumático es de carga extra (XL)
3pmsfboolean|nullIndica si el neumático tiene certificación invernal Three-Peak Mountain Snowflake (3PMSF)
tire_sizestringCadena formateada completa del neumático siguiendo estándares de la industria (p. ej., "225/60R18 100H" o "225/60R18 100H XL")

Tamaño formateado del neumático

El campo tire_size proporciona una cadena de designación completa del neumático siguiendo estándares de la industria que combina todas las especificaciones. Úsalo para fines de visualización, búsquedas de neumáticos o comprobaciones de compatibilidad. El formato incluye indicadores opcionales como XL (carga extra), RFT (run-flat) o ❄ (certificación invernal 3PMSF) cuando corresponda.

Comprendiendo los campos de neumáticos

La respuesta incluye tres especificaciones de neumáticos con distintos propósitos:

  • current_tire: Especificación leída del flanco del neumático mediante OCR. Representa lo que está montado actualmente. Puede contener valores null si el texto no es legible.
  • oe_front_tire: Especificación original de fábrica (OE) del eje delantero según el fabricante.
  • oe_rear_tire: Especificación original de fábrica (OE) del eje trasero. En la mayoría de vehículos coincide con la delantera salvo configuraciones escalonadas.

Neumático actual vs. OE

El neumático actual puede diferir del especificado de fábrica si el propietario ha cambiado las medidas. Usa current_tire para saber qué lleva el vehículo y oe_front_tire / oe_rear_tire para sugerir reemplazos compatibles.

Marca y modelo del neumático

Los campos tire_brand y tire_model solo se rellenan en current_tire cuando el texto es claramente legible en el flanco del neumático. Estos campos son siempre null en oe_front_tire y oe_rear_tire (los datos OE provienen de la base de datos del vehículo, que no incluye marca/modelo de neumático). Si el texto de la marca o modelo no es legible, el campo devuelve null en lugar de una suposición: se prioriza la precisión sobre la completitud.

Comprendiendo los niveles de confianza

El campo confidence (0.0 a 1.0) indica el grado de certeza de la IA en la identificación del vehículo:

Rango de confianzaInterpretaciónRecomendación
0.95 - 1.0Confianza muy altaApto para procesamiento automático
0.85 - 0.94Confianza altaGeneralmente fiable, se recomienda verificación ligera
0.70 - 0.84Confianza moderadaSe recomienda verificación manual
< 0.70Confianza bajaRequiere revisión manual

Resultados de baja confianza

Cuando la confianza es inferior a 0.70, recomendamos mostrar los resultados al usuario para verificación manual. Esto suele ocurrir con imágenes poco claras, modelos poco comunes o marcajes ambiguos.

Comprendiendo el array de acabados (trims)

El array trims está ordenado por probabilidad, siendo el primero el más probable:

"trims": ["300h", "300", "200t"]

Esto indica que el vehículo es más probablemente un "300h", aunque también podría ser un "300" o un "200t". Usa el primer valor como coincidencia principal.

Respuestas de error

400 Bad Request

{
  "success": false,
  "error": {
    "code": "INVALID_IMAGE",
    "message": "Invalid request body",
    "details": {
      "field": "tireImage",
      "issue": "Must be a valid base64-encoded image"
    }
  }
}

422 Imagen no legible

Se devuelve cuando la imagen es válida pero su contenido no permite una extracción fiable del tamaño del neumático (p. ej., no es un neumático, solo se ve la banda de rodadura, marcajes del flanco ilegibles).

{
  "success": false,
  "error": {
    "code": "UNREADABLE_IMAGE",
    "message": "Only the tire tread is visible. The sidewall markings where the tire size is printed cannot be read."
  }
}

Consulta UNREADABLE_IMAGE para más detalles.

401 Unauthorized

{
  "success": false,
  "error": {
    "code": "INVALID_API_KEY",
    "message": "Invalid API key"
  }
}

429 Too Many Requests

Se devuelve como RATE_LIMIT_EXCEEDED para límites de ráfaga, o QUOTA_EXCEEDED para agotamiento de cuota mensual (plan Sandbox):

{
  "success": false,
  "error": {
    "code": "QUOTA_EXCEEDED",
    "message": "Monthly quota exceeded"
  }
}

Requisitos de las imágenes

PropiedadRequisito
FormatoJPEG o PNG
CodificaciónCadena Base64 (sin prefijo data URL)
Tamaño máximo10 MB por imagen
Resolución recomendada1920x1080 o superior (las imágenes se optimizan automáticamente)

Guías de calidad de imagen

La calidad de las imágenes de entrada afecta directamente a la precisión. Sigue estas recomendaciones para obtener los mejores resultados:

Buenas prácticas para la imagen del neumático

  • Iluminación: Luz uniforme sin sombras duras sobre el texto del flanco
  • Ángulo: Foto perpendicular a la rueda (frontal, sin inclinación)
  • Enfoque: Todo el texto del flanco debe verse nítido y legible
  • Cobertura: Captura completa del marcado del neumático (p. ej., "225/60 R18 100H")
  • Evitar: Imágenes borrosas, ángulos extremos, sombras intensas o texto obstruido

Buenas prácticas para la imagen del vehículo

  • Encuadre: Incluye el vehículo completo (frontal tres cuartos, lateral o trasero funcionan mejor)
  • Distancia: Colócate a 3–5 metros para un encuadre óptimo
  • Claridad: El diseño y las líneas de la carrocería deben verse claramente
  • Evitar: Primeros planos extremos, vehículos cortados o imágenes muy recortadas

Resolución vs. tamaño de archivo

Aunque una mayor resolución mejora la precisión, imágenes de más de ~2MP ofrecen rendimientos decrecientes. Recomendamos 1920x1080 como equilibrio entre calidad y velocidad de subida. Las imágenes se reducen automáticamente a 1500px durante el procesamiento.

Ejemplos visuales

A continuación se muestran ejemplos reales que demuestran una captura adecuada para obtener resultados óptimos.

Ejemplo 1: Condiciones estándar

Ejemplo de neumático limpio con texto del flanco visible

Imagen del neumático: ángulo perpendicular, iluminación uniforme y texto legible

Ejemplo de vehículo con vista clara en tres cuartos

Imagen del vehículo: vista completa con líneas y elementos de diseño claros

Ejemplo 2: Condiciones difíciles

Nuestro sistema mantiene alta precisión incluso en condiciones menos ideales:

Ejemplo de neumático con barro

Neumático con barro: el sistema extrae correctamente las especificaciones

Vehículo en condiciones difíciles

Imagen del vehículo: condiciones exigentes que demuestran la robustez del reconocimiento

Capacidades avanzadas de IA

Nuestro motor de reconocimiento está entrenado para manejar condiciones reales como suciedad, barro, desgaste e iluminación subóptima. Aunque las imágenes limpias ofrecen los mejores resultados, el sistema mantiene alta precisión en escenarios diversos.

Rendimiento y facturación

Tiempo de procesamiento

Tiempo de respuesta típico de extremo a extremo: 7–15 segundos

Incluye:

  • Tiempo de red: Subida de imágenes a nuestros servidores (~1–3 s según conexión y tamaño)
  • Procesamiento en servidor: Análisis y enriquecimiento mediante IA (~7–10 s)
  • Tiempo de red: Descarga de la respuesta (<1s)

Factores que afectan al tiempo de procesamiento:

FactorImpactoOptimización
Tamaño de imagenArchivos grandes tardan más en subirRedimensionar a 1920x1080 antes de codificar
ResoluciónImpacto mínimo (auto-reducción)No superar 2MP
Latencia de redVariable según ubicaciónUsar CDN o ubicaciones edge
Carga del servidorMínima (auto-escalado)No requiere acción

El métrico executionTimeMs:

  • Refleja solo el tiempo de procesamiento en servidor (excluye red)
  • Útil para monitorizar tendencias de rendimiento
  • Suele oscilar entre 10.000 ms y 20.000 ms

Consejo de optimización

Para minimizar el tiempo total de la solicitud, comprime y redimensiona las imágenes antes de codificarlas en Base64. Un JPEG 1920x1080 al 85% de calidad ofrece excelentes resultados con cargas inferiores a 500 KB.

Cuota y facturación

  • Cada solicitud cuenta para tu cuota mensual, tenga éxito o falle
  • Pueden devolverse múltiples coincidencias cuando la confianza se reparte entre modelos similares
  • La API procesa ambas imágenes simultáneamente para máxima precisión