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.

Actualizado el Ver en Markdown

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.

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

bashjspyphpgo
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:

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.

Consulta imágenes para ver todos los tamaños y cómo construir las URL a partir de /3/configuration.

bashjspy
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://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 y los errores antes de pasar a producción.