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

# API de inspeccion visual

> Deteccion visual de danos y evaluacion de condicion con IA

## POST /v1/inspections/visual

Envio de imagenes del vehiculo para inspeccion visual completa con IA de vision por computadora. Detecta rayones, abolladuras, danos de pintura, danos en vidrio y mas con 94% de precision.

### Request

```bash theme={null}
curl -X POST "https://api.steerai.autos/v1/inspections/visual" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "vehicle_id": "veh_1234567890abcdef",
    "images": [
      {
        "url": "https://storage.example.com/front.jpg",
        "angle": "front",
        "type": "exterior"
      },
      {
        "url": "https://storage.example.com/rear.jpg",
        "angle": "rear",
        "type": "exterior"
      },
      {
        "url": "https://storage.example.com/left-side.jpg",
        "angle": "left_side",
        "type": "exterior"
      },
      {
        "url": "https://storage.example.com/right-side.jpg",
        "angle": "right_side",
        "type": "exterior"
      }
    ],
    "options": {
      "detailed_analysis": true,
      "generate_report": true,
      "detect_hidden_damage": false
    }
  }'
```

### Request Body

| Field                          | Type    | Required | Description                                                                                                                                                            |
| ------------------------------ | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `vehicle_id`                   | string  | Yes      | Identificador del vehiculo                                                                                                                                             |
| `images`                       | array   | Yes      | Arreglo de imagenes (min 4, max 50)                                                                                                                                    |
| `images[].url`                 | string  | Yes      | URL publica de la imagen                                                                                                                                               |
| `images[].angle`               | string  | Yes      | `front`, `rear`, `left_side`, `right_side`, `front_left`, `front_right`, `rear_left`, `rear_right`, `top`, `interior`, `dashboard`, `engine`, `trunk`, `undercarriage` |
| `images[].type`                | string  | Yes      | `exterior`, `interior`, `mechanical`                                                                                                                                   |
| `options.detailed_analysis`    | boolean | No       | Incluye mediciones detalladas (default: false)                                                                                                                         |
| `options.generate_report`      | boolean | No       | Genera reporte PDF (default: true)                                                                                                                                     |
| `options.detect_hidden_damage` | boolean | No       | Analisis avanzado de danos ocultos (default: false)                                                                                                                    |

### Response

```json theme={null}
{
  "status": "success",
  "data": {
    "inspection_id": "vis_1234567890abcdef",
    "vehicle_id": "veh_1234567890abcdef",
    "status": "completed",
    "created_at": "2024-01-15T10:30:00Z",
    "completed_at": "2024-01-15T10:30:45Z",
    "processing_time": 45.2,
    "results": {
      "overall_condition": "fair",
      "condition_score": 7.2,
      "confidence": 0.94,
      "damages": [
        {
          "damage_id": "dmg_front_bumper_001",
          "type": "scratch",
          "severity": "minor",
          "location": {
            "part": "front_bumper",
            "side": "front",
            "coordinates": {
              "x": 245,
              "y": 180,
              "width": 85,
              "height": 12
            }
          },
          "measurements": {
            "length": 8.5,
            "width": 1.2,
            "depth": 0.3,
            "unit": "cm"
          },
          "confidence": 0.96,
          "image_url": "https://storage.example.com/front.jpg",
          "annotated_url": "https://results.steerai.autos/dmg_front_bumper_001_annotated.jpg",
          "estimated_repair": {
            "min": 150,
            "max": 300,
            "currency": "USD",
            "repair_type": "paint_touch_up"
          }
        },
        {
          "damage_id": "dmg_rear_door_left_002",
          "type": "dent",
          "severity": "moderate",
          "location": {
            "part": "rear_door_left",
            "side": "left",
            "coordinates": {
              "x": 320,
              "y": 240,
              "width": 120,
              "height": 95
            }
          },
          "measurements": {
            "diameter": 11.5,
            "depth": 2.8,
            "unit": "cm"
          },
          "confidence": 0.89,
          "image_url": "https://storage.example.com/left-side.jpg",
          "annotated_url": "https://results.steerai.autos/dmg_rear_door_left_002_annotated.jpg",
          "estimated_repair": {
            "min": 500,
            "max": 850,
            "currency": "USD",
            "repair_type": "pdr_and_paint"
          }
        }
      ],
      "damage_summary": {
        "total_damages": 2,
        "by_severity": {
          "minor": 1,
          "moderate": 1,
          "severe": 0,
          "critical": 0
        },
        "by_type": {
          "scratch": 1,
          "dent": 1,
          "rust": 0,
          "crack": 0,
          "paint_damage": 0
        },
        "total_estimated_repair": {
          "min": 650,
          "max": 1150,
          "currency": "USD"
        }
      },
      "parts_affected": [
        {
          "part": "front_bumper",
          "condition": "good",
          "damage_count": 1
        },
        {
          "part": "rear_door_left",
          "condition": "fair",
          "damage_count": 1
        }
      ]
    },
    "reports": {
      "pdf_url": "https://reports.steerai.autos/vis_1234567890abcdef.pdf",
      "json_url": "https://api.steerai.autos/v1/inspections/visual/vis_1234567890abcdef/report"
    }
  },
  "meta": {
    "request_id": "req_visual_abc123",
    "processing_time": 45.234,
    "images_processed": 4,
    "ai_model_version": "v3.2.1"
  }
}
```

### Campos de respuesta

| Field                       | Type   | Description                                                                        |
| --------------------------- | ------ | ---------------------------------------------------------------------------------- |
| `inspection_id`             | string | Identificador unico de inspeccion visual                                           |
| `status`                    | string | `processing`, `completed`, `failed`                                                |
| `results.overall_condition` | string | `excellent`, `good`, `fair`, `poor`, `critical`                                    |
| `results.condition_score`   | float  | Puntaje de 0-10 (10 = condicion perfecta)                                          |
| `results.confidence`        | float  | Nivel de confianza de IA (0-1)                                                     |
| `damages[].type`            | string | `scratch`, `dent`, `rust`, `crack`, `paint_damage`, `glass_damage`, `panel_damage` |
| `damages[].severity`        | string | `minor`, `moderate`, `severe`, `critical`                                          |
| `damages[].measurements`    | object | Dimensiones fisicas del dano                                                       |
| `damages[].annotated_url`   | string | Imagen con dano resaltado                                                          |

### Tipos de dano

<AccordionGroup>
  <Accordion icon="brush" title="Danos de pintura y superficie">
    • **Scratch:** Dano superficial de pintura
    • **Paint Damage:** Pintura descascarada, saltada o deslavada
    • **Rust:** Corrosion en superficies metalicas
    • **Oxidation:** Oxidacion y desgaste de superficie
  </Accordion>

  <Accordion icon="car-burst" title="Danos estructurales">
    • **Dent:** Dano por impacto con hundimiento
    • **Panel Damage:** Paneles doblados o desalineados
    • **Crack:** Grietas en paneles
    • **Frame Damage:** Problemas en el chasis
  </Accordion>

  <Accordion icon="window-restore" title="Vidrios y molduras">
    • **Glass Damage:** Grietas o chips en vidrios
    • **Headlight Damage:** Faros opacos, agrietados o rotos
    • **Trim Damage:** Molduras faltantes o danadas
    • **Mirror Damage:** Espejos rotos o agrietados
  </Accordion>
</AccordionGroup>

### Respuestas de error

#### 400 Bad Request

```json theme={null}
{
  "status": "error",
  "error": {
    "code": "INSUFFICIENT_IMAGES",
    "message": "Minimum 4 images required for visual inspection",
    "type": "validation_error",
    "field": "images"
  }
}
```

#### 422 Unprocessable Entity

```json theme={null}
{
  "status": "error",
  "error": {
    "code": "IMAGE_QUALITY_TOO_LOW",
    "message": "Image quality insufficient for analysis. Please provide higher resolution images (min 1280x720)",
    "type": "validation_error",
    "field": "images[2].url",
    "details": {
      "image_index": 2,
      "current_resolution": "640x480",
      "minimum_resolution": "1280x720"
    }
  }
}
```

### Requisitos de imagen

<Warning>
  **Estandares de calidad de imagen**

  * **Resolucion minima:** 1280x720 pixeles
  * **Resolucion recomendada:** 1920x1080 pixeles o mas
  * **Formato:** JPG, PNG, HEIC
  * **Tamano maximo:** 10MB por imagen
  * **Iluminacion:** Buena luz natural o artificial
  * **Enfoque:** Imagenes nitidas sin desenfoque
</Warning>

### Mejores practicas

<CardGroup cols={2}>
  <Card title="Captura de imagen" icon="camera">
    **Guia de fotos optimas**

    • Captura todos los angulos requeridos
    • Usa buena iluminacion (evita sombras)
    • Mantén la camara a 2-3 metros del vehiculo
    • Asegura que el panel completo aparezca
    • Evita reflejos y brillos
  </Card>

  <Card title="Deteccion de danos" icon="magnifying-glass">
    **Maximiza la precision**

    • Limpia el vehiculo antes de fotografiar
    • Toma fotos de cerca del dano
    • Varios angulos por cada dano
    • Incluye objetos de referencia de escala
    • Iluminacion consistente en todas las imagenes
  </Card>
</CardGroup>

### Webhooks

Configura webhooks para recibir actualizaciones en tiempo real cuando termine la inspeccion:

```json theme={null}
{
  "event": "visual_inspection.completed",
  "timestamp": "2024-01-15T10:30:45Z",
  "data": {
    "inspection_id": "vis_1234567890abcdef",
    "vehicle_id": "veh_1234567890abcdef",
    "status": "completed",
    "damages_detected": 2,
    "overall_condition": "fair",
    "condition_score": 7.2,
    "report_url": "https://reports.steerai.autos/vis_1234567890abcdef.pdf"
  }
}
```

### Ejemplo: obtener resultados de inspeccion visual

```bash theme={null}
curl -X GET "https://api.steerai.autos/v1/inspections/visual/vis_1234567890abcdef" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

### Ejemplo: listar inspecciones de vehiculos

```bash theme={null}
curl -X GET "https://api.steerai.autos/v1/inspections/visual?vehicle_id=veh_1234567890abcdef&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

Query Parameters:

* `vehicle_id` (string): Filtra por vehiculo
* `status` (string): Filtra por estado (`processing`, `completed`, `failed`)
* `created_after` (string): Filtro de fecha ISO 8601
* `created_before` (string): Filtro de fecha ISO 8601
* `limit` (integer): Resultados por pagina (default: 20, max: 100)
* `offset` (integer): Offset de paginacion

<Tip>
  **Tip de rendimiento:** Para procesamiento mas rapido, redimensiona imagenes a 1920x1080 antes de subirlas. Imagenes mas grandes no mejoran precision y aumentan el tiempo de proceso.
</Tip>
