# Inicio rápido

> Compra un plan, crea una clave en tu cuenta y envíala con tu primera solicitud a https://api.amodb.dev/3/movie/550. La respuesta es el JSON de TMDB v3 que ya conoces. Después construye la URL de un póster en img.amodb.dev a partir de poster_path. Si ya usas TMDB u OMDb, cambia solo la URL base y la clave.

## 1. Consigue una clave

Elige un plan en la [página de precios](https://amodb.dev/es/pricing/) y paga un periodo. Después abre **Cuenta**, luego **Claves de API**, y crea una clave. Una clave tiene 32 caracteres hexadecimales en minúscula, la misma forma que una clave v3 de TMDB.

La clave completa se muestra una vez. Guárdala en una variable de entorno llamada `AMODB_KEY` para que los ejemplos de esta página funcionen tal cual.

```bash
export AMODB_KEY="0123456789abcdef0123456789abcdef"
```

## 2. Pide los detalles de una película

Llama a `GET /3/movie/{movie_id}`. Envía la clave como token Bearer o como `api_key` en la consulta. Ambas formas se aceptan en todos los endpoints.

```bash
curl "https://api.amodb.dev/3/movie/550?language=en-US" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```js
const res = await fetch("https://api.amodb.dev/3/movie/550?language=en-US", {
  headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` },
});
if (!res.ok) throw new Error(`amodb ${res.status}`);
const movie = await res.json();
console.log(movie.title, movie.runtime);
```

```python
import os
import requests

res = requests.get(
    "https://api.amodb.dev/3/movie/550",
    params={"language": "en-US"},
    headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
    timeout=10,
)
res.raise_for_status()
movie = res.json()
print(movie["title"], movie["runtime"])
```

```php
<?php
$ch = curl_init("https://api.amodb.dev/3/movie/550?language=en-US");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("AMODB_KEY")],
]);
$movie = json_decode(curl_exec($ch), true);
echo $movie["title"] . " " . $movie["runtime"];
```

```go
package main

import (
	"encoding/json"
	"fmt"
	"log"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://api.amodb.dev/3/movie/550?language=en-US", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("AMODB_KEY"))

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer res.Body.Close()

	var movie struct {
		Title   string `json:"title"`
		Runtime int    `json:"runtime"`
	}
	json.NewDecoder(res.Body).Decode(&movie)
	fmt.Println(movie.Title, movie.Runtime)
}
```

Una respuesta 200 tiene los campos de TMDB v3. Una parte breve:

```json
{
  "id": 550,
  "imdb_id": "tt0137523",
  "title": "Fight Club",
  "release_date": "1999-10-15",
  "runtime": 139,
  "poster_path": "/pB8BM7pdSp6B6Ih7QZ4DrQ3PmJK.jpg"
}
```

## 3. Carga el póster

Une la URL base de imágenes, un tamaño y `poster_path`. Las imágenes no necesitan clave y se mantienen en caché 30 días.

```bash
curl -o poster.jpg "https://img.amodb.dev/t/p/w500/pB8BM7pdSp6B6Ih7QZ4DrQ3PmJK.jpg"
```

```js
const poster = `https://img.amodb.dev/t/p/w500${movie.poster_path}`;
```

```python
poster = f"https://img.amodb.dev/t/p/w500{movie['poster_path']}"
```

Consulta [imágenes](https://amodb.dev/es/images/) para ver todos los tamaños y cómo construir las URL a partir de `/3/configuration`.

## 4. Migra un cliente existente

Para un cliente de TMDB v3, cambia la URL base de `https://api.themoviedb.org/3` a `https://api.amodb.dev/3` y usa tu clave de amodb. Para un cliente de OMDb, cámbiala a `https://api.amodb.dev/omdb/` y pasa la misma clave como `apikey`.

Los métodos de escritura de TMDB para cuenta, sesión, puntuaciones y listas no se ofrecen. Devuelven HTTP 405 con `status_code` 37, así que un cliente de solo lectura no necesita ningún otro cambio.

## 5. Gestiona los límites y los errores

Cada clave tiene un ritmo por minuto fijado por su plan. Lee `X-RateLimit-Remaining` y espera los segundos de `Retry-After` tras un 429. Los errores usan el cuerpo de TMDB con `success`, `status_code` y `status_message`.

Lee los [límites de solicitudes](https://amodb.dev/es/rate-limits/) y los [errores](https://amodb.dev/es/errors/) antes de pasar a producción.

## Preguntas y respuestas

### ¿Dónde encuentro mi clave?

Inicia sesión en amodb.dev, abre Cuenta y luego Claves de API, y crea una clave. La clave completa se muestra una vez, así que cópiala de inmediato en tu almacén de secretos.

### ¿Puedo usar la clave en una app de navegador?

Solo detrás de tu propio servidor. Una clave en código del lado del cliente es pública, y cualquiera que la copie usa tu límite de solicitudes.

## Páginas relacionadas

- [Autenticación](https://amodb.dev/es/authentication/): Cómo enviar tu clave de amodb: api_key en la consulta, un encabezado Bearer o apikey en llamadas OMDb. Formato, almacenamiento, rotación y errores 401.
- [Imágenes](https://amodb.dev/es/images/): Carga pósteres, backdrops y fotos de perfil desde img.amodb.dev con rutas y tamaños de TMDB, de w92 a original. Sin clave, caché de 30 días y un patrón de URL.
- [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.
- [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.

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