# 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}` връща основния запис на един човек: име, биография, рождена дата, място на раждане, отдел, профилно изображение и IMDb id. 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`          | път    | да            | Числов id на личността, например `31`.                                                                                                     |
| `api_key`            | заявка | един от двата | Вашият ключ. Ползвайте него или заглавката `Authorization: Bearer`.                                                                        |
| `language`           | заявка | не            | Таг на TMDB, например `en-US` или `ru-RU`. Биографията се връща на този език, когато има превод.                                           |
| `append_to_response` | заявка | не            | Списък, разделен със запетая: `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    | IMDb id на личност, например `nm0000158`.                                                                |
| `homepage`             | низ или null    | Официален сайт.                                                                                          |
| `profile_path`         | низ или null    | Добавя се към `https://img.amodb.dev/t/p/{size}`. Вижте [изображения](https://amodb.dev/bg/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. Профилните снимки са на страницата [изображения](https://amodb.dev/bg/images-api/), а външните id са на страницата [търсене по външен идентификатор](https://amodb.dev/bg/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/bg/errors/), а прозорците по планове са на страницата [лимити на заявките](https://amodb.dev/bg/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/bg/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/bg/credits/): API за участници със същите пътища и JSON като TMDB v3. Актьори и екип за филми, сериали, сезони и епизоди, с полета order, department и job.
- [API за актьори](https://amodb.dev/bg/actor-api/): API за актьори върху ендпойнтите за хора на TMDB v3. Биография, пълна филмография чрез комбинирани участия, профилни снимки и списък с популярни, на 14 езика.
- [API за търсене](https://amodb.dev/bg/search/): API за търсене със същите пътища и JSON като TMDB v3. Намира филми, сериали, личности, колекции, компании и ключови думи по текст, с филтър по година.
- [API за изображения и хост за изображения](https://amodb.dev/bg/images-api/): API за изображения на филми с пътища на TMDB v3: списъци с постери, фонови изображения, лога и кадри, после зареждане от img.amodb.dev в 10 размера без ключ.
- [Търсене по външен идентификатор](https://amodb.dev/bg/find-by-external-id/): Търсете филм, сериал или личност по IMDb, TVDB, Wikidata или Kinopoisk id с ендпойнта find на TMDB и четете външни id и факти от Wikidata за заглавие.
- [Бърз старт](https://amodb.dev/bg/quickstart/): Първата ви заявка към amodb: вземете ключ, поискайте детайли за филм с curl, JavaScript, Python, PHP или Go и заредете постера от img.amodb.dev. До 2 минути.

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