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

## Endpoint

`GET /3/person/{person_id}`

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

Respuesta:

```json
{
  "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 and recognizable film stars worldwide, and is widely regarded as an American cultur...",
  "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"
}
```

## Obtener los detalles de una persona

`GET /3/person/{person_id}` 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.

```bash
curl -sSf "https://api.amodb.dev/3/person/31?language=en-US&append_to_response=combined_credits" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```js
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);
```

```python
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
<?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;
```

```go
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

| Parámetro            | En       | Obligatorio    | Descripción                                                                                                                                 |
| -------------------- | -------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `person_id`          | ruta     | sí             | Id numérico de la persona, por ejemplo `31`.                                                                                                |
| `api_key`            | consulta | uno de los dos | Tu clave. Usa esta o el encabezado `Authorization: Bearer`.                                                                                 |
| `language`           | consulta | no             | Etiqueta de TMDB como `en-US` o `ru-RU`. La biografía se devuelve en ese idioma cuando existe una traducción.                               |
| `append_to_response` | consulta | no             | Lista 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://img.amodb.dev/t/p/{size}`. Consulta [imágenes](https://amodb.dev/es/images-api/). |
| `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 /3/person/31?language=en-US`, con la biografía acortada:

```json
{
  "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 /person/{person_id}/movie_credits`    | Películas, con `character` y `order` en `cast`, y `department` y `job` en `crew` | ninguno                |
| `GET /person/{person_id}/tv_credits`       | Series, con `character` en `cast` y `department` y `job` en `crew`               | ninguno                |
| `GET /person/{person_id}/combined_credits` | 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.

```js
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 /person/{person_id}/images`       | Fotos de perfil en un array `profiles`                                                           | ninguno                |
| `GET /person/{person_id}/external_ids` | `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](https://amodb.dev/es/images-api/), y los ids externos en [buscar por id externo](https://amodb.dev/es/find-by-external-id/).

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](https://amodb.dev/es/errors/), y las ventanas de cada plan en [límites de solicitudes](https://amodb.dev/es/rate-limits/).

## 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_credits` mediante `append_to_response` en lugar de hacer una segunda llamada. Las dos formas devuelven los mismos datos.
- En `movie_credits`, cada entrada de `cast` tiene un valor `order`, la posición de la persona en los créditos de esa película. Las entradas de TV no tienen `order`, así que ordénalas por `first_air_date`.
- Usa `known_for_department` para decidir qué lista mostrar primero: `cast` para actores, `crew` para directores y guionistas.
- Busca a una persona por nombre en la [búsqueda](https://amodb.dev/es/search/) y usa aquí el id.

## Preguntas y respuestas

### ¿Cómo obtengo la filmografía completa de un actor?

Llama a GET /3/person/{person_id}/combined_credits para obtener películas y TV en una sola respuesta, o añade append_to_response=combined_credits a la solicitud de la persona. Cada entrada tiene media_type para que separes películas de series.

### ¿Qué significan los valores de gender?

0 significa sin especificar, 1 mujer, 2 hombre y 3 no binario. Muchos registros conservan 0, así que no lo trates como un error ni construyas lógica que dependa de él.

### ¿Qué tamaño debo usar para las fotos de perfil?

Usa w185 para listas y h632 para páginas de detalle, ambos en img.amodb.dev. Las rutas de perfil pueden ser null, así que ten lista una imagen provisional para las personas sin foto.

### ¿Hay forma de buscar personas por nombre?

Sí, GET /3/search/person con un parámetro query. Está en la página de búsqueda, y el id que devuelve es el person_id que usan todos los endpoints de aquí.

## Páginas relacionadas

- [API de créditos](https://amodb.dev/es/credits/): API de créditos con las mismas rutas y el mismo JSON que TMDB v3. Obtén reparto y equipo técnico de películas, series, temporadas y episodios con order y job.
- [API de actores](https://amodb.dev/es/actor-api/): API de actores con los endpoints de personas de TMDB v3. Obtén biografía, filmografía con créditos combinados, fotos de perfil y lista popular, en 14 idiomas.
- [API de búsqueda](https://amodb.dev/es/search/): API de búsqueda con rutas y JSON de TMDB v3. Encuentra películas, series, personas, colecciones, productoras y palabras clave por texto, con filtros de año.
- [API de imágenes y host de imágenes](https://amodb.dev/es/images-api/): API de imágenes de películas con rutas TMDB v3: lista pósters, fondos, logos y fotogramas por título y cárgalos desde img.amodb.dev en 10 tamaños sin clave.
- [Buscar por id externo](https://amodb.dev/es/find-by-external-id/): Busca una película, serie o persona por id de IMDb, TVDB, Wikidata o Kinopoisk con el endpoint find de TMDB, y lee los ids externos y los datos de Wikidata.
- [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.

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