API de detalles de persona
El endpoint de persona devuelve un actor, director o miembro del equipo técnico por id en GET /3/person/{person_id}. El JSON coincide con TMDB v3: biografía, fecha de nacimiento, lugar de nacimiento, imagen de perfil y departamento. Los endpoints complementarios devuelven créditos de películas, de TV y combinados, ids externos, imágenes de perfil y la lista de populares.
Obtener los detalles de una persona
GET / devuelve el registro principal de una persona: nombre, biografía, fecha de nacimiento, lugar de nacimiento, departamento, imagen de perfil e id de IMDb. El id es el id numérico de persona de TMDB, así que Tom Hanks sigue siendo 31 y Leonardo DiCaprio sigue siendo 6193. Las personas que trabajan delante y detrás de la cámara comparten un mismo espacio de ids.
El ejemplo lee a Tom Hanks y añade sus créditos combinados, y luego imprime el nombre, la fecha de nacimiento, el departamento principal y cuántos créditos de actuación tiene.
curl -sSf "https://api.amodb.dev/3/person/31?language=en-US&append_to_response=combined_credits" \
-H "Authorization: Bearer $AMODB_KEY"const url = 'https://api.amodb.dev/3/person/31?language=en-US&append_to_response=combined_credits';
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` } });
if (!res.ok) throw new Error(`amodb returned ${res.status}`);
const person = await res.json();
console.log(person.name, person.birthday, person.known_for_department, person.combined_credits.cast.length);import os
import requests
r = requests.get(
"https://api.amodb.dev/3/person/31",
params={"language": "en-US", "append_to_response": "combined_credits"},
headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
timeout=10,
)
r.raise_for_status()
person = r.json()
print(person["name"], person["birthday"], person["known_for_department"], len(person["combined_credits"]["cast"]))<?php
$url = 'https://api.amodb.dev/3/person/31?language=en-US&append_to_response=combined_credits';
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 10,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('AMODB_KEY')],
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status !== 200) {
throw new RuntimeException("amodb returned $status");
}
$person = json_decode($body, true);
echo $person['name'], ' ', $person['birthday'], ' ', count($person['combined_credits']['cast']), PHP_EOL;package main
import (
"encoding/json"
"fmt"
"net/http"
"os"
"time"
)
type Person struct {
Name string `json:"name"`
Birthday string `json:"birthday"`
Department string `json:"known_for_department"`
PlaceOfBirth string `json:"place_of_birth"`
}
func main() {
req, _ := http.NewRequest("GET", "https://api.amodb.dev/3/person/31?language=en-US", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("AMODB_KEY"))
client := &http.Client{Timeout: 10 * time.Second}
res, err := client.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
panic(res.Status)
}
var p Person
if err := json.NewDecoder(res.Body).Decode(&p); err != nil {
panic(err)
}
fmt.Println(p.Name, p.Birthday, p.Department, p.PlaceOfBirth)
}Parámetros
person_idrutaobligatorioId numérico de la persona, por ejemplo31.api_keyconsultauno de los dosTu clave. Usa esta o el encabezadoAuthorization: Bearer.languageconsultaEtiqueta de TMDB comoen-USoru-RU. La biografía se devuelve en ese idioma cuando existe una traducción.append_to_responseconsultaLista separada por comas:movie_credits,tv_credits,combined_credits,external_ids,images. Los nombres desconocidos se ignoran.
Campos de la respuesta
| Campo | Tipo | Notas |
|---|---|---|
id | entero | Id de la persona. |
name | texto | Nombre para mostrar, en el language pedido cuando existe una traducción. |
also_known_as | array | Nombres y grafías alternativos. |
biography | texto | Texto localizado, vacío cuando no existe traducción. |
birthday, deathday | texto o null | YYYY-MM-DD. deathday es null para personas vivas. |
place_of_birth | texto o null | Texto libre. |
gender | entero | 0 sin especificar, 1 mujer, 2 hombre, 3 no binario. |
known_for_department | texto | Trabajo principal, por ejemplo Acting o Directing. |
imdb_id | texto o null | Id de persona de IMDb como nm0000158. |
homepage | texto o null | Sitio oficial. |
profile_path | texto o null | Añádelo a https:/. Consulta imágenes. |
popularity | número | Puntuación relativa que usa la lista de populares. |
adult | booleano | Siempre false. Nunca se sirven personas marcadas como adultas. |
Ejemplo de respuesta
GET /, con la biografía acortada:
{
"adult": false,
"also_known_as": [
"Thomas Jeffrey Hanks"
],
"biography": "Thomas Jeffrey Hanks (born July 9, 1956) is an American actor and filmmaker. Known for both his comedic and dramatic roles, Hanks is one of the most popular...",
"birthday": "1956-07-09",
"deathday": null,
"gender": 2,
"homepage": null,
"id": 31,
"imdb_id": "nm0000158",
"known_for_department": "Acting",
"name": "Tom Hanks",
"place_of_birth": "Concord, California, USA",
"popularity": 12.98,
"profile_path": "/oFvZoKI6lvU03n4YoNGAll9rkas.jpg"
}Endpoints de filmografía
Tres endpoints listan en qué trabajó una persona. Todos aceptan language y devuelven las claves id, cast y crew. Cuando los añades con append_to_response, la clave id se omite.
| Método y ruta | Devuelve | Parámetros adicionales |
|---|---|---|
GET / | Películas, con character y order en cast, y department y job en crew | ninguno |
GET / | Series, con character en cast y department y job en crew | ninguno |
GET / | Películas y series juntas, cada una con media_type en movie o tv | ninguno |
Las entradas de películas llevan title y release_date. Las entradas de TV llevan name y first_air_date, y las entradas de reparto de TV también contienen una clave episode_count que vale 0 en los datos actuales. Las entradas también llevan credit_id, genre_ids, poster_path, vote_average y los demás campos de lista. El fragmento de abajo ordena los créditos combinados por fecha e imprime los cinco más recientes.
const credits = person.combined_credits;
const date = (c) => c.release_date || c.first_air_date || '';
const latest = credits.cast.filter((c) => date(c)).sort((a, b) => date(b).localeCompare(date(a))).slice(0, 5);
for (const c of latest) console.log(date(c), c.media_type, c.title || c.name, 'as', c.character);Listas e imágenes
| Método y ruta | Devuelve | Parámetros adicionales |
|---|---|---|
GET /person/popular | Lista paginada de personas populares con títulos en known_for | language, page |
GET / | Fotos de perfil en un array profiles | ninguno |
GET / | imdb_id, wikidata_id, facebook_id, instagram_id, tiktok_id, twitter_id, youtube_id | ninguno |
Las entradas populares contienen id, name, original_name, known_for_department, gender, profile_path, popularity y un array known_for. Las páginas van de 1 a 500. Las fotos de perfil se tratan en imágenes, y los ids externos en buscar por id externo.
amodb no ofrece traducciones de personas, el registro de persona más reciente, imágenes etiquetadas ni la ruta changes. Pide la biografía en el idioma que necesites con el parámetro language.
Errores
| HTTP | status_code | Cuándo |
|---|---|---|
| 401 | 7 | La clave falta o es incorrecta. |
| 402 | 36 | El periodo del plan ha terminado. |
| 404 | 34 | No hay ninguna persona con ese id, es una persona marcada como adulta, o la ruta no se ofrece. |
| 405 | 37 | Llamaste a un método de escritura. |
| 429 | 25 | Superaste tus solicitudes por minuto. Espera los segundos de Retry-After. |
La lista completa está en errores, y las ventanas de cada plan en límites de solicitudes.
Notas prácticas
- Los detalles de persona y las listas de créditos se guardan en caché 6 horas. La lista de populares se guarda 30 minutos y las páginas van de 1 a 500.
- Añade
combined_creditsmedianteappend_to_responseen lugar de hacer una segunda llamada. Las dos formas devuelven los mismos datos. - En
movie_credits, cada entrada decasttiene un valororder, la posición de la persona en los créditos de esa película. Las entradas de TV no tienenorder, así que ordénalas porfirst_air_date. - Usa
known_for_departmentpara decidir qué lista mostrar primero:castpara actores,crewpara directores y guionistas. - Busca a una persona por nombre en la búsqueda y usa aquí el id.