> ## 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 de API

> Autenticacion segura para las APIs REST de Steer AI

## Resumen de autenticacion

Steer AI usa autenticacion por API key con tokens Bearer. Todas las solicitudes deben incluir una API key valida en el encabezado Authorization.

## Obtener API keys

### Claves de desarrollo

1. Registra una cuenta gratuita en [dashboard.steerai.autos](https://dashboard.steerai.autos)
2. Ve a **Settings** → **API Keys**
3. Haz clic en **Generate Development Key**
4. Copia y guarda tu key de forma segura

### Claves de produccion

1. Actualiza a un plan de pago
2. Ve a **Settings** → **API Keys**
3. Haz clic en **Generate Production Key**
4. Copia y guarda tu key de forma segura

## Metodos de autenticacion

### Token Bearer (recomendado)

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

### Parametro de consulta (no recomendado)

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

<Warning>
  **Advertencia de seguridad:** La autenticacion por parametro expone tu API key en logs del servidor y el historial del navegador. Usa autenticacion por encabezado en produccion.
</Warning>

## Autenticacion en SDKs

### Python

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

# Using environment variable (recommended)
client = SteerAI(api_key=os.getenv("STEER_AI_API_KEY"))

# Direct assignment (not recommended for production)
client = SteerAI(api_key="your_api_key_here")
```

### JavaScript/Node.js

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

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

// Using config object
const client = new SteerAI({
  apiKey: 'your_api_key_here',
  environment: 'production' // or 'sandbox'
});
```

## Configuracion de entornos

### Variables de entorno

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

### Configuracion para multiples entornos

```bash theme={null}
# Development
STEER_AI_DEV_API_KEY=dev_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
STEER_AI_DEV_BASE_URL=https://api-sandbox.steerai.autos/v1

# Production
STEER_AI_PROD_API_KEY=prod_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
STEER_AI_PROD_BASE_URL=https://api.steerai.autos/v1
```

## Probar autenticacion

### Endpoint de prueba rapida

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

**Respuesta exitosa:**

```json theme={null}
{
  "status": "success",
  "data": {
    "authenticated": true,
    "account_id": "acc_1234567890",
    "plan": "professional",
    "permissions": ["inspections:read", "inspections:write"]
  }
}
```

### Informacion de la cuenta

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

## Buenas practicas de seguridad

<AccordionGroup>
  <Accordion icon="key" title="Gestion de API keys">
    • Guarda las keys en variables de entorno, nunca en el codigo
    • Usa keys distintas para desarrollo y produccion
    • Rota las keys cada 90 dias
    • Revoca keys comprometidas de inmediato
    • Usa prefijos para identificar entornos (dev\_, prod\_)
  </Accordion>

  <Accordion icon="shield" title="Seguridad de red">
    • Usa siempre HTTPS para solicitudes de API
    • Valida certificados SSL
    • Implementa listas blancas de IP cuando sea posible
    • Usa VPN o redes privadas para operaciones sensibles
  </Accordion>

  <Accordion icon="eye" title="Control de acceso">
    • Limita permisos de API keys al minimo necesario
    • Usa keys separadas para distintas aplicaciones
    • Monitorea uso de API para patrones inusuales
    • Implementa logging y alertas adecuadas
  </Accordion>
</AccordionGroup>

## Respuestas de error

### API key invalida

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

### API key faltante

```json theme={null}
{
  "status": "error",
  "error": {
    "code": "MISSING_API_KEY",
    "message": "API key is required for this endpoint",
    "type": "authentication_error"
  }
}
```

### Permisos insuficientes

```json theme={null}
{
  "status": "error",
  "error": {
    "code": "INSUFFICIENT_PERMISSIONS",
    "message": "Your API key does not have permission to access this resource",
    "type": "authorization_error"
  }
}
```

## Solucion de problemas

### Problemas comunes

<AccordionGroup>
  <Accordion icon="exclamation-triangle" title="401 Unauthorized">
    **Causas:**
    • API key invalida o expirada
    • Falta el encabezado Authorization
    • Formato de encabezado incorrecto

    **Soluciones:**
    • Verifica que la API key sea correcta
    • Revisa el formato: `Authorization: Bearer YOUR_KEY`
    • Regenera la API key si es necesario
  </Accordion>

  <Accordion icon="ban" title="403 Forbidden">
    **Causas:**
    • La API key no tiene permisos requeridos
    • Limitaciones del plan
    • Cuenta suspendida

    **Soluciones:**
    • Revisa permisos de la API key
    • Actualiza el plan si es necesario
    • Contacta soporte por problemas de cuenta
  </Accordion>

  <Accordion icon="clock" title="Problemas de conexion">
    **Causas:**
    • Problemas de conectividad de red
    • Firewall bloqueando solicitudes
    • Problemas de certificados SSL

    **Soluciones:**
    • Prueba la conectividad de red
    • Revisa la configuracion del firewall
    • Verifica la validacion de certificados SSL
  </Accordion>
</AccordionGroup>

## Limites de tasa

Las solicitudes autenticadas estan sujetas a limites segun tu plan:

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

## Necesitas ayuda?

Si tienes problemas de autenticacion:

* Revisa nuestra [guia de solucion de problemas](/es/support/troubleshooting)
* Contacta soporte en [support@steerai.autos](mailto:support@steerai.autos)
* Incluye tu ID de cuenta (nunca compartas tu API key)

<Note>
  **Nota de seguridad:** Nunca compartas tus API keys en solicitudes de soporte, repositorios de codigo o foros publicos. Nuestro equipo de soporte nunca pedira tus API keys.
</Note>
