# API credite

> Endpoint-urile de credite întorc distribuția și echipa unui film la GET /3/movie/{movie_id}/credits, precum și ale serialelor, sezoanelor și episoadelor sub /3/tv. JSON-ul se potrivește cu TMDB v3, inclusiv credit_id, order, department și job. Creditele de episod adaugă un array guest_stars lângă crew, iar array-ul lor cast este gol.

## Endpoint

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

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

Răspuns:

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

## Obține creditele unui film

`GET /3/movie/{movie_id}/credits` întoarce două array-uri pentru un film: `cast` pentru persoanele care apar pe ecran și `crew` pentru cele care au lucrat în spatele camerei. Fiecare intrare conține ID-ul persoanei, deci poți deschide fișa completă pe pagina [persoane](https://amodb.dev/ro/people/). Aceleași date sunt disponibile în răspunsul filmului cu `append_to_response=credits`.

Exemplul citește Inception, afișează regizorul și listează primii cinci actori de pe generic.

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

### Parametri

| Parametru  | Loc        | Obligatoriu          | Descriere                                                                                            |
| ---------- | ---------- | -------------------- | ---------------------------------------------------------------------------------------------------- |
| `movie_id` | cale       | da                   | ID numeric de film, de exemplu `27205`.                                                              |
| `api_key`  | interogare | una dintre cele două | Cheia ta. Folosește-o pe aceasta sau antetul `Authorization: Bearer`.                                |
| `language` | interogare | nu                   | Etichetă TMDB precum `en-US` sau `fr-FR`. Etichetele din afara celor 14 limbi de bază revin la `en`. |

### Câmpurile răspunsului

| Câmp                            | Se aplică la                 | Observații                                                                                                                                           |
| ------------------------------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                            | nivelul superior             | ID-ul filmului, serialului, sezonului sau episodului cărora le aparțin creditele.                                                                    |
| `cast`, `crew`                  | nivelul superior             | Array-uri de intrări. Creditele de episod adaugă `guest_stars`.                                                                                      |
| `id`                            | fiecare intrare              | ID-ul persoanei. Deschide-l cu [persoane](https://amodb.dev/ro/people/).                                                                             |
| `name`, `original_name`         | fiecare intrare              | Numele persoanei.                                                                                                                                    |
| `known_for_department`          | fiecare intrare              | Meseria principală a persoanei în general, nu meseria din acest titlu.                                                                               |
| `gender`, `popularity`, `adult` | fiecare intrare              | Aceeași semnificație ca în fișa persoanei.                                                                                                           |
| `profile_path`                  | fiecare intrare              | Calea imaginii sau null. Se adaugă la `https://img.amodb.dev/t/p/{size}`.                                                                            |
| `credit_id`                     | fiecare intrare              | Șir care identifică acest singur credit.                                                                                                             |
| `character`                     | distribuție, actori invitați | Numele rolului, gol la unele intrări.                                                                                                                |
| `order`                         | distribuție, actori invitați | Poziția pe generic, `0` este prima.                                                                                                                  |
| `department`                    | echipă                       | Grup precum `Directing`, `Writing`, `Production`, `Camera`, `Editing`, `Sound`, `Art`, `Visual Effects`, `Lighting`, `Costume & Make-Up` sau `Crew`. |
| `job`                           | echipă                       | Meserie specifică, de exemplu `Director`, `Screenplay` sau `Editor`.                                                                                 |

### Exemplu de răspuns

`GET /3/movie/27205/credits?language=en-US`. Răspunsul are azi 52 de intrări în distribuție și 735 în echipă, deci ambele array-uri sunt tăiate aici la două:

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

## Credite pentru TV, sezon și episod

Toate căile de mai jos au baza `https://api.amodb.dev/3` și primesc `language`.

| Metodă și cale                                                                | Întoarce                                                            |
| ----------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| `GET /tv/{series_id}/credits`                                                 | Distribuția și echipa serialului, o intrare pe persoană și rol.     |
| `GET /tv/{series_id}/season/{season_number}/credits`                          | Distribuția și echipa unui sezon.                                   |
| `GET /tv/{series_id}/season/{season_number}/episode/{episode_number}/credits` | `crew` și `guest_stars` pentru un episod. `cast` este un array gol. |

Aceleași date sunt disponibile cu `append_to_response=credits` pe căile de serial, sezon și episod. Structura intrărilor se potrivește cu creditele de film de mai sus. Actorii invitați ai unui episod poartă `character` și `order`, iar intrările din echipă poartă `department` și `job`.

`GET /3/tv/1399/season/1/episode/1/credits?language=en-US`, cu array-urile tăiate la două intrări:

```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 nu oferă credite TV agregate sau căutare după `credit_id`. Pentru lista distribuției unui serial, citește `/tv/{series_id}/credits` și sortează `cast` după `order`.

## Citirea distribuției și a echipei într-o aplicație

| Sarcină                                    | Cum                                                                                                           |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------- |
| Arată regizorul                            | Alege intrările `crew` cu `job` egal cu `Director`. Un film poate avea mai mulți.                             |
| Arată distribuția principală               | Sortează `cast` după `order` și ia primii 10.                                                                 |
| Grupează echipa                            | Grupează după `department`. O persoană cu două meserii apare de două ori, deci îmbină după `id`-ul persoanei. |
| Arată distribuția unui serial              | Citește creditele serialului și sortează `cast` după `order`.                                                 |
| Listează toate departamentele și meseriile | Citește lista de referință descrisă la [genuri și liste de referință](https://amodb.dev/ro/genres/).          |

## Erori

| HTTP | status_code | Când                                                                         |
| ---- | ----------- | ---------------------------------------------------------------------------- |
| 401  | 7           | Cheia lipsește sau este greșită.                                             |
| 402  | 36          | Perioada planului s-a încheiat.                                              |
| 404  | 34          | Filmul, serialul, sezonul sau episodul nu există sau calea nu este oferită.  |
| 405  | 37          | Ai apelat o metodă de scriere.                                               |
| 429  | 25          | Ai depășit cererile pe minut. Așteaptă numărul de secunde din `Retry-After`. |

Detaliile sunt la [erori](https://amodb.dev/ro/errors/) și [limite de cereri](https://amodb.dev/ro/rate-limits/).

## Note practice

- Creditele sunt ținute în cache 6 ore, ca detaliile. Un nou membru al distribuției poate dura atât să apară.
- O producție mare poate lista sute de intrări în echipă. Taie array-urile înainte să le afișezi.
- `profile_path` este null pentru persoanele fără fotografie. Folosește `w185` pentru rândurile din liste și `h632` pentru vizualizările de detalii.
- Fișele de film și de serial sunt la [filme](https://amodb.dev/ro/movies/) și [seriale TV](https://amodb.dev/ro/tv-series/). Fișele de sezon și de episod sunt la [sezoane și episoade](https://amodb.dev/ro/tv-seasons-episodes/).

## Întrebări și răspunsuri

### Cum obțin lista distribuției unui serial?

Apelează GET /3/tv/{series_id}/credits și sortează array-ul cast după order. Creditele de sezon acoperă un singur sezon, iar creditele de episod adaugă guest_stars. amodb nu oferă credite TV agregate.

### Cum găsesc regizorul unui film?

Citește array-ul crew și alege intrarea al cărei job este Director. Un film poate avea mai mulți regizori, deci adună toate potrivirile în loc să te oprești la prima.

### Ce înseamnă câmpul order?

Order este poziția pe generic a unui membru al distribuției, cu 0 pentru primul. Sortează cast după order ca să arăți rolurile principale primele. Intrările din crew nu au order.

### De unde vin actorii invitați?

Doar endpoint-ul de credite de episod întoarce un array guest_stars, lângă crew. Array-ul lui cast este gol. Creditele de sezon și de serial nu listează separat actorii invitați.

## Pagini conexe

- [API detalii persoană](https://amodb.dev/ro/people/): API detalii persoană cu căile și JSON-ul TMDB v3. Preia un actor sau membru al echipei după ID, cu biografie, filmografie, ID-uri externe și lista populară.
- [API detalii film](https://amodb.dev/ro/movies/): API detalii film cu aceleași căi și același JSON ca TMDB v3. Preia un film după ID, adaugă credite, evaluări și atmosferă cu append_to_response, în 14 limbi.
- [API seriale TV](https://amodb.dev/ro/tv-series/): API seriale TV cu căile și JSON-ul TMDB v3. Preia un serial după ID cu sezoane, rețele și următorul episod, plus clasificări de conținut și furnizori.
- [API sezoane și episoade TV](https://amodb.dev/ro/tv-seasons-episodes/): API sezoane și episoade TV cu aceleași căi și același JSON ca TMDB v3. Citește un sezon cu toate episoadele sau un episod cu data difuzării, durata și cadrul.
- [API pentru actori](https://amodb.dev/ro/actor-api/): API pentru actori pe endpoint-urile TMDB v3. Primești biografia, filmografia din credite combinate, fotografii de profil și lista populară, în 14 limbi.
- [Ghid rapid](https://amodb.dev/ro/quickstart/): Fă primul apel amodb: ia o cheie, cere detaliile unui film în curl, JavaScript, Python, PHP sau Go, apoi încarcă posterul de pe img.amodb.dev. Sub 2 minute.

Actualizat: 2026-10-18. Source: https://amodb.dev/ro/credits/
