# API деталей человека

> Эндпоинт человека возвращает одного актера, режиссера или члена съемочной группы по ID: GET /3/person/{person_id}. JSON совпадает с TMDB v3: биография, дата и место рождения, фото профиля и отдел. Дополнительные эндпоинты отдают кредиты в фильмах, сериалах и всех вместе, внешние ID, фото профиля и список популярных.

## Эндпоинт

`GET /3/person/{person_id}`

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

Ответ:

```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"
}
```

## Получение деталей человека

`GET /3/person/{person_id}` возвращает основную запись об одном человеке: имя, биографию, дату рождения, место рождения, отдел, фото профиля и ID IMDb. ID соответствует числовому ID человека в TMDB, поэтому Tom Hanks остается `31`, а Leonardo DiCaprio остается `6193`. Люди, работающие перед камерой и за ней, делят одно пространство ID.

Пример запрашивает Tom Hanks с добавлением его объединенных кредитов, затем выводит имя, дату рождения, основной отдел и количество его актерских работ.

```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)
}
```

### Параметры

| Параметр             | Где   | Обязателен   | Описание                                                                                                                           |
| -------------------- | ----- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| `person_id`          | path  | да           | Числовой ID человека, например `31`.                                                                                               |
| `api_key`            | query | один из двух | Ваш ключ. Используйте его или заголовок `Authorization: Bearer`.                                                                   |
| `language`           | query | нет          | Тег TMDB, например `en-US` или `ru-RU`. Биография возвращается на этом языке, если перевод существует.                             |
| `append_to_response` | query | нет          | Список через запятую: `movie_credits`, `tv_credits`, `combined_credits`, `external_ids`, `images`. Неизвестные имена игнорируются. |

### Поля ответа

| Поле                   | Тип             | Примечания                                                                                                 |
| ---------------------- | --------------- | ---------------------------------------------------------------------------------------------------------- |
| `id`                   | целое число     | ID человека.                                                                                               |
| `name`                 | строка          | Отображаемое имя, на запрошенном `language`, если перевод существует.                                      |
| `also_known_as`        | массив          | Другие имена и варианты написания.                                                                         |
| `biography`            | строка          | Локализованный текст, пустой, если перевода нет.                                                           |
| `birthday`, `deathday` | строка или null | `YYYY-MM-DD`. `deathday` равен null для живых людей.                                                       |
| `place_of_birth`       | строка или null | Свободный текст.                                                                                           |
| `gender`               | целое число     | 0 не указан, 1 женский, 2 мужской, 3 небинарный.                                                           |
| `known_for_department` | строка          | Основная профессия, например `Acting` или `Directing`.                                                     |
| `imdb_id`              | строка или null | ID человека в IMDb, например `nm0000158`.                                                                  |
| `homepage`             | строка или null | Официальный сайт.                                                                                          |
| `profile_path`         | строка или null | Добавляется к `https://img.amodb.dev/t/p/{size}`. См. [API изображений](https://amodb.dev/ru/images-api/). |
| `popularity`           | число           | Относительная оценка, по которой строится список популярных.                                               |
| `adult`                | логическое      | Всегда `false`. Записи для взрослых не отдаются никогда.                                                   |

### Пример ответа

`GET /3/person/31?language=en-US`, биография сокращена:

```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"
}
```

## Эндпоинты фильмографии

Три эндпоинта перечисляют работы человека. Все принимают `language` и возвращают ключи `id`, `cast` и `crew`. При добавлении через `append_to_response` ключ `id` отсутствует.

| Метод и путь                               | Возвращает                                                               | Дополнительные параметры |
| ------------------------------------------ | ------------------------------------------------------------------------ | ------------------------ |
| `GET /person/{person_id}/movie_credits`    | Фильмы, с `character` и `order` в `cast` и `department` и `job` в `crew` | нет                      |
| `GET /person/{person_id}/tv_credits`       | Сериалы, с `character` в `cast` и `department` и `job` в `crew`          | нет                      |
| `GET /person/{person_id}/combined_credits` | Фильмы и сериалы вместе, у каждого `media_type` равен `movie` или `tv`   | нет                      |

Записи о фильмах содержат `title` и `release_date`. Записи о сериалах содержат `name` и `first_air_date`, а записи актерского состава сериалов также имеют ключ `episode_count`, который в текущих данных равен `0`. Записи также содержат `credit_id`, `genre_ids`, `poster_path`, `vote_average` и другие поля списков. Фрагмент ниже сортирует объединенные кредиты по дате и выводит пять самых новых.

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

## Списки и изображения

| Метод и путь                           | Возвращает                                                                                       | Дополнительные параметры |
| -------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------ |
| `GET /person/popular`                  | Постраничный список популярных людей с тайтлами `known_for`                                      | `language`, `page`       |
| `GET /person/{person_id}/images`       | Фото профиля в массиве `profiles`                                                                | нет                      |
| `GET /person/{person_id}/external_ids` | `imdb_id`, `wikidata_id`, `facebook_id`, `instagram_id`, `tiktok_id`, `twitter_id`, `youtube_id` | нет                      |

Записи популярных содержат `id`, `name`, `original_name`, `known_for_department`, `gender`, `profile_path`, `popularity` и массив `known_for`. Страницы идут от 1 до 500. Фото профиля описаны на странице [API изображений](https://amodb.dev/ru/images-api/), а внешние ID на странице [поиск по внешнему ID](https://amodb.dev/ru/find-by-external-id/).

amodb не предоставляет переводы людей, самую новую запись человека, изображения с тегами и изменения. Вместо этого запрашивайте биографию на нужном языке через параметр `language`.

## Ошибки

| HTTP | status_code | Когда                                                                     |
| ---- | ----------- | ------------------------------------------------------------------------- |
| 401  | 7           | Ключ отсутствует или неверен.                                             |
| 402  | 36          | Период тарифа закончился.                                                 |
| 404  | 34          | Нет человека с таким ID, запись для взрослых или путь не предоставляется. |
| 405  | 37          | Вы вызвали метод записи.                                                  |
| 429  | 25          | Превышен лимит запросов в минуту. Подождите `Retry-After` секунд.         |

Полный список на странице [ошибки](https://amodb.dev/ru/errors/), а окна по тарифам на странице [лимиты запросов](https://amodb.dev/ru/rate-limits/).

## Практические советы

- Детали людей и списки кредитов кэшируются на 6 часов. Список популярных кэшируется на 30 минут, страницы идут от 1 до 500.
- Добавляйте `combined_credits` через `append_to_response` вместо второго вызова. Оба способа возвращают одни и те же данные.
- В `movie_credits` у каждой записи `cast` есть значение `order`, позиция человека в титрах этого фильма. У записей сериалов `order` нет, поэтому сортируйте их по `first_air_date`.
- Используйте `known_for_department`, чтобы решить, какой список показывать первым: `cast` для актеров, `crew` для режиссеров и сценаристов.
- Найдите человека по имени через [поиск](https://amodb.dev/ru/search/), а затем используйте полученный ID здесь.

## Вопросы и ответы

### Как получить полную фильмографию актера?

Вызовите GET /3/person/{person_id}/combined_credits, чтобы получить фильмы и сериалы одним ответом, или добавьте append_to_response=combined_credits к запросу человека. В каждой записи есть media_type, по которому можно разделить фильмы и сериалы.

### Что означают значения gender?

0 означает «не указан», 1 женский, 2 мужской и 3 небинарный. Во многих записях остается 0, поэтому не считайте это ошибкой и не стройте логику, которая от него зависит.

### Какой размер использовать для фото профиля?

Используйте w185 для списков и h632 для страниц деталей, оба на img.amodb.dev. Пути профиля могут быть null, поэтому держите наготове изображение-заглушку для людей без фото.

### Можно ли искать людей по имени?

Да, через GET /3/search/person с параметром query. Он описан на странице поиска, а возвращаемый им ID совпадает с person_id, который используют все эндпоинты здесь.

## Связанные страницы

- [API актеров и съемочной группы](https://amodb.dev/ru/credits/): API credits с теми же путями и JSON, что в TMDB v3. Актерский состав и съемочная группа фильмов, сериалов, сезонов и серий с полями order, department, job.
- [API актеров](https://amodb.dev/ru/actor-api/): API актеров на эндпоинтах people TMDB v3. Получите биографию, полную фильмографию через combined credits, фото профиля и список популярных людей на 14 языках.
- [API поиска](https://amodb.dev/ru/search/): API поиска с путями и JSON как в TMDB v3. Находите фильмы, сериалы, людей, коллекции, компании и ключевые слова по тексту, с фильтром по году и пагинацией.
- [API изображений и хост изображений](https://amodb.dev/ru/images-api/): API изображений фильмов с путями TMDB v3: списки постеров, фонов, логотипов и кадров для каждого проекта, загрузка с img.amodb.dev в 10 размерах без ключа.
- [Поиск по внешнему ID](https://amodb.dev/ru/find-by-external-id/): Найдите фильм, сериал или персону по ID IMDb, TVDB, Wikidata или Kinopoisk через эндпоинт find TMDB, а также прочитайте внешние ID и факты Wikidata о проекте.
- [Быстрый старт](https://amodb.dev/ru/quickstart/): Первый вызов amodb: получите ключ, запросите детали фильма через curl, JavaScript, Python, PHP или Go и загрузите постер с img.amodb.dev. Меньше 2 минут.

Обновлено: 2026-10-18. Source: https://amodb.dev/ru/people/
