> ## 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.

# Autenticacion y claves API

> Configuracion de autenticacion segura para las APIs y servicios de Steer AI

## Resumen

Steer AI utiliza autenticacion basada en clave API para asegurar el acceso a nuestros servicios. Todas las solicitudes API deben incluir una clave valida en los headers.

## Obtener tus claves API

### 1. Accede a tu dashboard

1. Inicia sesion en tu [Dashboard de Steer AI](https://dashboard.steerai.autos)
2. Ve a **Settings** → **API Keys**
3. Haz clic en **Generate New API Key**

### 2. Tipos de claves API

<CardGroup cols={2}>
  <Card title="Claves de desarrollo" icon="code">
    • Para pruebas y desarrollo
    • Limites de tasa reducidos
    • Acceso a entorno sandbox
    • Plan gratuito disponible
  </Card>

  <Card title="Claves de produccion" icon="shield-check">
    • Para aplicaciones en vivo
    • Limites de tasa completos
    • Acceso a entorno de produccion
    • Requiere plan pago
  </Card>
</CardGroup>

## Metodos de autenticacion

### Autenticacion por header HTTP

Incluye tu clave en el header `Authorization`:

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

### Autenticacion por parametro de consulta

Alternativamente, incluye la clave como query parameter:

```bash theme={null}
curl -X GET "https://api.steerai.autos/v1/inspections?api_key=YOUR_API_KEY"
```

<Warning>
  **Nota de seguridad:** Se recomienda autenticacion por header en lugar de parametros para evitar que las claves aparezcan en logs.
</Warning>

## Configuracion de entorno

### Entorno de desarrollo

```bash theme={null}
# .env file
STEER_AI_API_KEY=dev_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
STEER_AI_BASE_URL=https://api-sandbox.steerai.autos/v1
```

### Entorno de produccion

```bash theme={null}
# .env file
STEER_AI_API_KEY=prod_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
STEER_AI_BASE_URL=https://api.steerai.autos/v1
```

## Autenticacion en SDK

### SDK de Python

```python theme={null}
from steer_ai import SteerAI

# Initialize client
client = SteerAI(api_key="YOUR_API_KEY")

# Or using environment variable
import os
client = SteerAI(api_key=os.getenv("STEER_AI_API_KEY"))
```

### SDK de JavaScript

```javascript theme={null}
import { SteerAI } from '@steerai/sdk';

// Initialize client
const client = new SteerAI({
  apiKey: 'YOUR_API_KEY'
});

// Or using environment variable
const client = new SteerAI({
  apiKey: process.env.STEER_AI_API_KEY
});
```

## Probar tu autenticacion

### Prueba rapida

Usa este endpoint para verificar la autenticacion:

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

**Respuesta esperada:**

```json theme={null}
{
  "status": "success",
  "message": "Authentication successful",
  "account": {
    "id": "acc_1234567890",
    "name": "Your Company Name",
    "plan": "professional"
  }
}
```

## Buenas practicas de seguridad

<AccordionGroup>
  <Accordion icon="lock" title="Gestion de claves API">
    • Guarda las claves en variables de entorno, nunca en el codigo
    • Usa claves distintas para desarrollo y produccion
    • Rota claves regularmente (recomendado: cada 90 dias)
    • Revoca inmediatamente claves comprometidas
  </Accordion>

  <Accordion icon="shield" title="Seguridad de red">
    • Usa HTTPS para todas las solicitudes API
    • Implementa validacion correcta de SSL
    • Usa whitelisting de IP cuando sea posible
    • Monitorea uso de API para patrones anormales
  </Accordion>

  <Accordion icon="eye" title="Control de acceso">
    • Limita permisos al minimo necesario
    • Usa claves separadas para diferentes servicios
    • Implementa manejo adecuado de errores
    • Registra fallos de autenticacion para monitoreo
  </Accordion>
</AccordionGroup>

## Limites de tasa

Las claves API tienen limites segun el plan:

| Plan             | Solicitudes/Hora | Solicitudes Concurrentes |
| ---------------- | ---------------- | ------------------------ |
| **Free**         | 1,000            | 5                        |
| **Starter**      | 10,000           | 20                       |
| **Professional** | 100,000          | 100                      |
| **Enterprise**   | Unlimited        | Custom                   |

## Manejo de errores

### Errores comunes de autenticacion

```json theme={null}
{
  "error": {
    "code": "INVALID_API_KEY",
    "message": "The provided API key is invalid",
    "type": "authentication_error"
  }
}
```

```json theme={null}
{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Try again in 60 seconds",
    "type": "rate_limit_error",
    "retry_after": 60
  }
}
```

### Manejo de errores de autenticacion

```python theme={null}
try:
    response = client.inspections.create(data)
except SteerAIAuthenticationError as e:
    # Handle authentication error
    print(f"Authentication failed: {e.message}")
except SteerAIRateLimitError as e:
    # Handle rate limit
    print(f"Rate limit exceeded. Retry after {e.retry_after} seconds")
```

## Solucion de problemas

### La clave API no funciona

1. **Verifica el formato:** Debe empezar con `dev_` o `prod_`
2. **Revisa el entorno:** Usa la URL base correcta
3. **Confirma el plan:** Verifica que la cuenta este activa
4. **Prueba con curl:** Usa el endpoint de prueba

### Permisos denegados

1. **Revisa permisos de la clave:** Debe tener los scopes necesarios
2. **Verifica limites del plan:** No exceder limites de uso
3. **Revisa restricciones IP:** Si tienes whitelisting configurado

<Note>
  ¿Necesitas ayuda con la autenticacion? Contacta a soporte en [support@steerai.autos](mailto:support@steerai.autos) con tu ID de cuenta (nunca compartas tus claves API).
</Note>
