# Autenticación

> Cada solicitud a amodb lleva una clave de 32 caracteres hexadecimales en minúscula. Envíala como api_key en la consulta o como encabezado Authorization: Bearer en las llamadas estilo TMDB, y como apikey en las llamadas estilo OMDb. Las imágenes no necesitan clave. Una clave incorrecta devuelve 401 con status_code 7, y una clave suspendida, 401 con status_code 10.

## Formato de la clave

Una clave tiene 32 caracteres hexadecimales en minúscula, por ejemplo `0123456789abcdef0123456789abcdef`. Tiene la misma forma que una clave v3 de TMDB, así que los campos y validadores creados para claves de TMDB la aceptan.

amodb guarda solo un hash SHA-256 de cada clave. La clave completa se muestra una vez, al crearla. Si la pierdes, elimínala y crea una nueva.

## Llamadas estilo TMDB

Envía la clave de una de dos formas. Ambas funcionan en todos los endpoints bajo `https://api.amodb.dev/3`.

| Método                | Ejemplo                          |
| --------------------- | -------------------------------- |
| Parámetro de consulta | `?api_key=YOUR_KEY`              |
| Encabezado            | `Authorization: Bearer YOUR_KEY` |

```bash
curl "https://api.amodb.dev/3/configuration" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```js
const res = await fetch("https://api.amodb.dev/3/configuration", {
  headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` },
});
```

```python
import os
import requests

res = requests.get(
    "https://api.amodb.dev/3/configuration",
    headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
    timeout=10,
)
```

```php
<?php
$url = "https://api.amodb.dev/3/configuration?api_key=" . urlencode(getenv("AMODB_KEY"));
$config = json_decode(file_get_contents($url), true);
```

```go
req, _ := http.NewRequest("GET", "https://api.amodb.dev/3/configuration", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("AMODB_KEY"))
res, err := http.DefaultClient.Do(req)
```

## Llamadas estilo OMDb

El endpoint compatible con OMDb recibe la clave como `apikey`, igual que OMDb. Es la misma clave que usas en las llamadas estilo TMDB.

```bash
curl "https://api.amodb.dev/omdb/?t=Inception&y=2010&apikey=$AMODB_KEY"
```

## Las imágenes no necesitan clave

Las URL de imágenes en `img.amodb.dev` son públicas. No les añadas tu clave: una etiqueta `<img>` la expondría a todos los visitantes.

## Mantén las claves en el servidor

Una clave en un bundle del navegador, en una app móvil o en un repositorio público es pública. Cualquiera que la copie gasta tu ritmo de solicitudes. Llama a amodb desde tu servidor, una función serverless o un paso de compilación, y pasa a los clientes solo los datos.

- Guarda la clave en una variable de entorno o en un gestor de secretos.
- Usa una clave por app o entorno, con una etiqueta como `production` o `staging`.
- Elimina una clave en cuanto se filtre. Las llamadas con ella fallan al instante.

## Errores

| HTTP | status_code | Significado                                                         |
| ---- | ----------- | ------------------------------------------------------------------- |
| 401  | 7           | La clave falta, tiene un formato incorrecto o es desconocida.       |
| 401  | 10          | La clave está suspendida. Escribe a <support@amodb.dev>.            |
| 402  | 36          | Tu plan ha caducado. Paga un nuevo periodo en la página de precios. |

Consulta [errores](https://amodb.dev/es/errors/) para ver todos los códigos.

## Preguntas y respuestas

### ¿Un encabezado Bearer es más seguro que api_key en la consulta?

Sí, un poco. Las cadenas de consulta acaban en los registros del servidor y en el historial del navegador con más frecuencia que los encabezados. Ambos llegan a la misma comprobación, así que usa el encabezado donde tu cliente lo permita.

### ¿Cuántas claves puedo crear?

Hasta 10 claves activas por cuenta. Todas comparten el límite de solicitudes de tu plan, así que una segunda clave no añade capacidad.

### ¿Qué pasa con mis claves cuando cambio de plan?

No tienes que hacer nada. Cada clave activa recibe el nuevo ritmo en menos de un minuto desde el pago.

## Páginas relacionadas

- [Inicio rápido](https://amodb.dev/es/quickstart/): Haz tu primera llamada a amodb: consigue una clave, pide los detalles de una película en curl, JavaScript, Python, PHP o Go y carga el póster. En 2 minutos.
- [Límites de solicitudes](https://amodb.dev/es/rate-limits/): amodb limita cada clave por solicitudes por minuto en una ventana deslizante de 60 segundos: 20, 40 o 120 según el plan. Lee los encabezados y gestiona el 429.
- [Errores](https://amodb.dev/es/errors/): Cada error de amodb con su estado HTTP, su status_code de TMDB y su mensaje, más la forma de error de OMDb. Qué significa cada uno y qué debe hacer tu cliente.
- [Política de uso aceptable](https://amodb.dev/es/acceptable-use/): Qué se permite y qué no con amodb: crear apps, sitios, bots e investigación con los datos, pero nunca compartir claves, revender acceso ni atacar el servicio.

Actualizado: 2026-10-18. Source: https://amodb.dev/es/authentication/
