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 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.
export AMODB_KEY="0123456789abcdef0123456789abcdef"2. Pide los detalles de una película
Llama a GET /. Envía la clave como token Bearer o como api_key en la consulta. Ambas formas se aceptan en todos los endpoints.
curl "https://api.amodb.dev/3/movie/550?language=en-US" \
-H "Authorization: Bearer $AMODB_KEY"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);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
$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"];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:
{
"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.
Consulta imágenes para ver todos los tamaños y cómo construir las URL a partir de /3/configuration.
curl -o poster.jpg "https://img.amodb.dev/t/p/w500/pB8BM7pdSp6B6Ih7QZ4DrQ3PmJK.jpg"const poster = `https://img.amodb.dev/t/p/w500${movie.poster_path}`;poster = f"https://img.amodb.dev/t/p/w500{movie['poster_path']}"4. Migra un cliente existente
Para un cliente de TMDB v3, cambia la URL base de https:/ a https:/ y usa tu clave de amodb. Para un cliente de OMDb, cámbiala a https:/ 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 y los errores antes de pasar a producción.