# API акторського складу та знімальної групи

> Ендпоінти credits повертають акторський склад і знімальну групу фільму за GET /3/movie/{movie_id}/credits, а також серіалів, сезонів і серій у /3/tv. JSON збігається з TMDB v3, зокрема credit_id, order, department і job. Credits серії додають масив guest_stars поруч із crew, а їхній масив cast порожній.

## Ендпоінт

`GET /3/movie/{movie_id}/credits`

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

Відповідь:

```json
{
  "id": 27205,
  "cast": [
    {
      "adult": false,
      "gender": 2,
      "id": 6193,
      "known_for_department": "Acting",
      "name": "Leonardo DiCaprio",
      "original_name": "Leonardo DiCaprio",
      "popularity": 9.3213,
      "profile_path": "/wo2hJpn04vbtmh0B9utCFdsQhxM.jpg",
      "character": "Dom Cobb",
      "credit_id": "52fe4534c3a368484e04de03",
      "order": 0
    },
    {
      "adult": false,
      "gender": 2,
      "id": 24045,
      "known_for_department": "Acting",
      "name": "Joseph Gordon-Levitt",
      "original_name": "Joseph Gordon-Levitt",
      "popularity": 5.6202,
      "profile_path": "/z2FA8js799xqtfiFjBTicFYdfk.jpg",
      "character": "Arthur",
      "credit_id": "52fe4534c3a368484e04de0b",
      "order": 1
    },
    {
      "adult": false,
      "gender": 2,
      "id": 3899,
      "known_for_department": "Acting",
      "name": "Ken Watanabe",
      "original_name": "Ken Watanabe",
      "popularity": 3.1459,
      "profile_path": "/psAXOYp9SBOXvg6AXzARDedNQ9P.jpg",
      "character": "Saito",
      "credit_id": "52fe4534c3a368484e04de07",
      "order": 2
    }
  ],
  "crew": [
    {
      "adult": false,
      "gender": 2,
      "id": 1025090,
      "known_for_department": "Crew",
      "name": "Jim Wilkey",
      "original_name": "Jim Wilkey",
      "popularity": 0.9114,
      "profile_path": "/peEdS7ZYHwEeMJAwInJj732AeYs.jpg",
      "credit_id": "6634553bad59b501286dab5f",
      "department": "Crew",
      "job": "Stunt Driver"
    },
    {
      "adult": false,
      "gender": 2,
      "id": 1741194,
      "known_for_department": "Sound",
      "name": "James Thatcher",
      "original_name": "James Thatcher",
      "popularity": 0.6215,
      "profile_path": null,
      "credit_id": "5bcdece8925141613e0216d3",
      "department": "Sound",
      "job": "Musician"
    },
    {
      "adult": false,
      "gender": 2,
      "id": 1899036,
      "known_for_department": "Crew",
      "name": "Kyle Photo Bucher",
      "original_name": "Kyle Photo Bucher",
      "popularity": 0,
      "profile_path": null,
      "credit_id": "5bcdfa639251416134024237",
      "department": "Crew",
      "job": "Set Production Assistant"
    }
  ]
}
```

## Credits фільму

`GET /3/movie/{movie_id}/credits` повертає для одного фільму два масиви: `cast` для людей, які з'являються на екрані, і `crew` для тих, хто працював за кадром. Кожен запис містить id персони, тож повний запис можна відкрити на сторінці [персони](https://amodb.dev/uk/people/). Ті самі дані доступні у відповіді про фільм через `append_to_response=credits`.

Приклад читає Inception, виводить режисера і перелічує п'ятьох акторів, названих у титрах першими.

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

```js
const url = 'https://api.amodb.dev/3/movie/27205/credits?language=en-US';
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` } });
if (!res.ok) throw new Error(`amodb returned ${res.status}`);
const credits = await res.json();
const director = credits.crew.find((c) => c.job === 'Director');
console.log('Director:', director?.name);
for (const c of [...credits.cast].sort((a, b) => a.order - b.order).slice(0, 5)) {
  console.log(c.order, c.name, 'as', c.character);
}
```

```python
import os
import requests

r = requests.get(
    "https://api.amodb.dev/3/movie/27205/credits",
    params={"language": "en-US"},
    headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
    timeout=10,
)
r.raise_for_status()
credits = r.json()
director = next((c for c in credits["crew"] if c["job"] == "Director"), None)
print("Director:", director and director["name"])
for c in sorted(credits["cast"], key=lambda c: c["order"])[:5]:
    print(c["order"], c["name"], "as", c["character"])
```

```php
<?php
$url = 'https://api.amodb.dev/3/movie/27205/credits?language=en-US';
$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");
}
$credits = json_decode($body, true);
usort($credits['cast'], fn ($a, $b) => $a['order'] <=> $b['order']);
foreach (array_slice($credits['cast'], 0, 5) as $c) {
    echo $c['order'], ' ', $c['name'], ' as ', $c['character'], PHP_EOL;
}
```

```go
package main

import (
	"encoding/json"
	"fmt"
	"net/http"
	"os"
	"time"
)

type Credits struct {
	Cast []struct {
		Order     int    `json:"order"`
		Name      string `json:"name"`
		Character string `json:"character"`
	} `json:"cast"`
	Crew []struct {
		Name string `json:"name"`
		Job  string `json:"job"`
	} `json:"crew"`
}

func main() {
	req, _ := http.NewRequest("GET", "https://api.amodb.dev/3/movie/27205/credits?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 c Credits
	if err := json.NewDecoder(res.Body).Decode(&c); err != nil {
		panic(err)
	}
	for _, m := range c.Crew {
		if m.Job == "Director" {
			fmt.Println("Director:", m.Name)
		}
	}
	for i, a := range c.Cast {
		if i == 5 {
			break
		}
		fmt.Println(a.Order, a.Name, "as", a.Character)
	}
}
```

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

| Параметр   | Де    | Обов'язковий | Опис                                                                                        |
| ---------- | ----- | ------------ | ------------------------------------------------------------------------------------------- |
| `movie_id` | шлях  | так          | Числовий id фільму, наприклад `27205`.                                                      |
| `api_key`  | query | одне з двох  | Ваш ключ. Використовуйте його або заголовок `Authorization: Bearer`.                        |
| `language` | query | ні           | Тег TMDB, наприклад `en-US` або `fr-FR`. Теги поза 14 базовими мовами відкочуються на `en`. |

### Поля відповіді

| Поле                            | Де застосовується       | Примітки                                                                                                                                                  |
| ------------------------------- | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                            | верхній рівень          | id фільму, серіалу, сезону чи серії, до яких належать credits.                                                                                            |
| `cast`, `crew`                  | верхній рівень          | Масиви записів. Credits серії додають `guest_stars`.                                                                                                      |
| `id`                            | кожен запис             | id персони. Відкрийте його через [персони](https://amodb.dev/uk/people/).                                                                                 |
| `name`, `original_name`         | кожен запис             | Ім'я людини.                                                                                                                                              |
| `known_for_department`          | кожен запис             | Основна професія людини загалом, а не робота в цьому проєкті.                                                                                             |
| `gender`, `popularity`, `adult` | кожен запис             | Значення те саме, що й у записі персони.                                                                                                                  |
| `profile_path`                  | кожен запис             | Шлях до зображення або null. Додайте до `https://img.amodb.dev/t/p/{size}`.                                                                               |
| `credit_id`                     | кожен запис             | Рядок, що ідентифікує цю окрему участь.                                                                                                                   |
| `character`                     | актори, запрошені зірки | Назва ролі, у деяких записів порожня.                                                                                                                     |
| `order`                         | актори, запрошені зірки | Позиція в титрах, `0` означає першого.                                                                                                                    |
| `department`                    | знімальна група         | Група, наприклад `Directing`, `Writing`, `Production`, `Camera`, `Editing`, `Sound`, `Art`, `Visual Effects`, `Lighting`, `Costume & Make-Up` або `Crew`. |
| `job`                           | знімальна група         | Конкретна посада, наприклад `Director`, `Screenplay` або `Editor`.                                                                                        |

### Приклад відповіді

`GET /3/movie/27205/credits?language=en-US`. Нині відповідь містить 52 записи cast і 735 записів crew, тому обидва масиви тут скорочено до двох:

```json
{
  "id": 27205,
  "cast": [
    {
      "adult": false,
      "gender": 2,
      "id": 6193,
      "known_for_department": "Acting",
      "name": "Leonardo DiCaprio",
      "original_name": "Leonardo DiCaprio",
      "popularity": 9.3213,
      "profile_path": "/wo2hJpn04vbtmh0B9utCFdsQhxM.jpg",
      "character": "Dom Cobb",
      "credit_id": "52fe4534c3a368484e04de03",
      "order": 0
    },
    {
      "adult": false,
      "gender": 2,
      "id": 24045,
      "known_for_department": "Acting",
      "name": "Joseph Gordon-Levitt",
      "original_name": "Joseph Gordon-Levitt",
      "popularity": 5.6202,
      "profile_path": "/z2FA8js799xqtfiFjBTicFYdfk.jpg",
      "character": "Arthur",
      "credit_id": "52fe4534c3a368484e04de0b",
      "order": 1
    }
  ],
  "crew": [
    {
      "adult": false,
      "gender": 2,
      "id": 1025090,
      "known_for_department": "Crew",
      "name": "Jim Wilkey",
      "original_name": "Jim Wilkey",
      "popularity": 0.9114,
      "profile_path": "/peEdS7ZYHwEeMJAwInJj732AeYs.jpg",
      "credit_id": "6634553bad59b501286dab5f",
      "department": "Crew",
      "job": "Stunt Driver"
    },
    {
      "adult": false,
      "gender": 2,
      "id": 1741194,
      "known_for_department": "Sound",
      "name": "James Thatcher",
      "original_name": "James Thatcher",
      "popularity": 0.6215,
      "profile_path": null,
      "credit_id": "5bcdece8925141613e0216d3",
      "department": "Sound",
      "job": "Musician"
    }
  ]
}
```

## Credits серіалів, сезонів і серій

Усі шляхи нижче мають спільну основу `https://api.amodb.dev/3` і приймають `language`.

| Метод і шлях                                                                  | Що повертає                                                               |
| ----------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| `GET /tv/{series_id}/credits`                                                 | Акторський склад і знімальна група серіалу, один запис на людину та роль. |
| `GET /tv/{series_id}/season/{season_number}/credits`                          | Акторський склад і знімальна група одного сезону.                         |
| `GET /tv/{series_id}/season/{season_number}/episode/{episode_number}/credits` | `crew` і `guest_stars` однієї серії. `cast` це порожній масив.            |

Ті самі дані доступні через `append_to_response=credits` на шляхах серіалу, сезону та серії. Структура запису збігається з credits фільму вище. Запрошені зірки серії мають `character` і `order`, а записи crew мають `department` і `job`.

`GET /3/tv/1399/season/1/episode/1/credits?language=en-US`, масиви скорочено до двох записів:

```json
{
  "id": 63056,
  "cast": [],
  "crew": [
    {
      "department": "Writing",
      "job": "Writer",
      "credit_id": "5256c8a019c2956ff6046e2b",
      "adult": false,
      "gender": 2,
      "id": 9813,
      "known_for_department": "Writing",
      "name": "David Benioff",
      "original_name": "David Benioff",
      "popularity": 2.0354,
      "profile_path": "/xvNN5huL0X8yJ7h3IZfGG4O2zBD.jpg"
    },
    {
      "department": "Editing",
      "job": "Editor",
      "credit_id": "54eef2ab925141795f005d4f",
      "adult": false,
      "gender": 2,
      "id": 18077,
      "known_for_department": "Editing",
      "name": "Oral Norrie Ottey",
      "original_name": "Oral Norrie Ottey",
      "popularity": 0,
      "profile_path": null
    }
  ],
  "guest_stars": [
    {
      "character": "Benjen Stark",
      "credit_id": "5256c8b919c2956ff604836a",
      "order": 61,
      "adult": false,
      "gender": 2,
      "id": 119783,
      "known_for_department": "Acting",
      "name": "Joseph Mawle",
      "original_name": "Joseph Mawle",
      "popularity": 1.4645,
      "profile_path": "/1Ocb9v3h54beGVoJMm4w50UQhLf.jpg"
    },
    {
      "character": "Rickon Stark",
      "credit_id": "566a83bcc3a3683f56003604",
      "order": 80,
      "adult": false,
      "gender": 2,
      "id": 1050248,
      "known_for_department": "Acting",
      "name": "Art Parkinson",
      "original_name": "Art Parkinson",
      "popularity": 1.2594,
      "profile_path": "/ejAKOJME1DsvHECLWdQ7dEtXyyc.jpg"
    }
  ]
}
```

amodb не надає зведених credits для серіалів і пошуку за `credit_id`. Щоб отримати акторський склад серіалу, прочитайте `/tv/{series_id}/credits` і відсортуйте `cast` за `order`.

## Як читати акторів і знімальну групу в застосунку

| Завдання                         | Як                                                                                                            |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| Показати режисера                | Виберіть записи `crew`, де `job` дорівнює `Director`. У фільму їх може бути кілька.                           |
| Показати головних акторів        | Відсортуйте `cast` за `order` і візьміть перші 10.                                                            |
| Згрупувати знімальну групу       | Згрупуйте за `department`. Людина з двома посадами з'являється двічі, тож об'єднуйте за `id` персони.         |
| Показати акторів серіалу         | Прочитайте credits серіалу й відсортуйте `cast` за `order`.                                                   |
| Перелічити всі відділи та посади | Прочитайте довідковий список, описаний на сторінці [жанри та довідкові списки](https://amodb.dev/uk/genres/). |

## Помилки

| HTTP | status_code | Коли                                                                                            |
| ---- | ----------- | ----------------------------------------------------------------------------------------------- |
| 401  | 7           | Ключ відсутній або неправильний.                                                                |
| 402  | 36          | Термін дії тарифу закінчився.                                                                   |
| 404  | 34          | Фільму, серіалу, сезону чи серії не існує, або такий шлях не надається.                         |
| 405  | 37          | Ви викликали метод запису.                                                                      |
| 429  | 25          | Перевищено ліміт запитів на хвилину. Зачекайте стільки секунд, скільки вказано в `Retry-After`. |

Подробиці дивіться на сторінках [помилки](https://amodb.dev/uk/errors/) та [ліміти запитів](https://amodb.dev/uk/rate-limits/).

## Практичні поради

- Credits кешуються на 6 годин, як і деталі. Новий актор може з'явитися лише через цей час.
- Велика постановка може містити сотні записів crew. Обрізайте масиви, перш ніж виводити їх.
- `profile_path` дорівнює null для людей без фото. Використовуйте `w185` для рядків списку і `h632` для детальних сторінок.
- Записи фільмів і серіалів описані на сторінках [фільми](https://amodb.dev/uk/movies/) та [серіали](https://amodb.dev/uk/tv-series/). Записи сезонів і серій є на сторінці [сезони та серії](https://amodb.dev/uk/tv-seasons-episodes/).

## Запитання й відповіді

### Як отримати акторський склад серіалу?

Викличте GET /3/tv/{series_id}/credits і відсортуйте масив cast за order. Credits сезону охоплюють один сезон, а credits серії додають guest_stars. Зведених credits для серіалів amodb не надає.

### Як знайти режисера фільму?

Прочитайте масив crew і виберіть запис, у якому job дорівнює Director. У фільму може бути кілька режисерів, тому збирайте всі збіги, а не зупиняйтеся на першому.

### Що означає поле order?

Order це позиція актора в титрах, де 0 означає першого. Відсортуйте cast за order, щоб показати головні ролі першими. У записів crew поля order немає.

### Звідки беруться запрошені зірки?

Масив guest_stars повертає лише ендпоінт credits серії, поруч із crew. Його масив cast порожній. Credits сезону й серіалу не виділяють запрошених зірок окремо.

## Пов'язані сторінки

- [API деталей персони](https://amodb.dev/uk/people/): API деталей персони з тими самими шляхами та JSON, що в TMDB v3. Отримайте актора чи режисера за id: біографія, фільмографія, зовнішні id і список популярних.
- [API деталей фільму](https://amodb.dev/uk/movies/): API деталей фільму з тими самими шляхами та JSON, що в TMDB v3. Отримайте фільм за id, додайте акторів, рейтинги й настрої через append_to_response, 14 мовами.
- [API серіалів](https://amodb.dev/uk/tv-series/): API серіалів з тими самими шляхами та JSON, що в TMDB v3. Отримайте серіал за id із сезонами, телемережами й наступною серією, плюс вікові рейтинги.
- [API сезонів і серій серіалів](https://amodb.dev/uk/tv-seasons-episodes/): API сезонів і серій серіалів з тими самими шляхами та JSON, що в TMDB v3. Читайте сезон з усіма серіями або одну серію з датою виходу, тривалістю та кадром.
- [API акторів](https://amodb.dev/uk/actor-api/): API акторів на ендпоінтах people TMDB v3. Отримайте біографію, повну фільмографію через combined credits, фото профілю та список популярних персон 14 мовами.
- [Швидкий старт](https://amodb.dev/uk/quickstart/): Перший виклик amodb: отримайте ключ, запросіть деталі фільму в curl, JavaScript, Python, PHP чи Go і завантажте постер з img.amodb.dev. Менш ніж за 2 хвилини.

Оновлено: 2026-10-18. Source: https://amodb.dev/uk/credits/
