# API detalii persoană

> Endpoint-ul pentru persoane întoarce un actor, regizor sau membru al echipei după ID la GET /3/person/{person_id}. JSON-ul se potrivește cu TMDB v3: biografie, zi de naștere, loc de naștere, imagine de profil și departament. Endpoint-urile însoțitoare întorc credite de film, TV și combinate, ID-uri externe, imagini de profil și lista populară.

## Endpoint

`GET /3/person/{person_id}`

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

Răspuns:

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

## Obține detaliile unei persoane

`GET /3/person/{person_id}` întoarce fișa de bază a unei persoane: nume, biografie, zi de naștere, loc de naștere, departament, imagine de profil și ID IMDb. ID-ul este ID-ul numeric de persoană TMDB, deci Tom Hanks rămâne `31`, iar Leonardo DiCaprio rămâne `6193`. Persoanele care lucrează în fața și în spatele camerei împart un singur spațiu de ID-uri.

Exemplul citește Tom Hanks și îi atașează creditele combinate, apoi afișează numele, ziua de naștere, departamentul principal și câte credite de actorie are.

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

### Parametri

| Parametru            | Loc        | Obligatoriu          | Descriere                                                                                                                                   |
| -------------------- | ---------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `person_id`          | cale       | da                   | ID numeric de persoană, de exemplu `31`.                                                                                                    |
| `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 `ru-RU`. Biografia este întoarsă în acea limbă când există o traducere.                                    |
| `append_to_response` | interogare | nu                   | Listă separată prin virgulă: `movie_credits`, `tv_credits`, `combined_credits`, `external_ids`, `images`. Numele necunoscute sunt ignorate. |

### Câmpurile răspunsului

| Câmp                   | Tip          | Observații                                                                                         |
| ---------------------- | ------------ | -------------------------------------------------------------------------------------------------- |
| `id`                   | număr întreg | ID-ul persoanei.                                                                                   |
| `name`                 | șir          | Nume afișat, în `language` cerută când există o traducere.                                         |
| `also_known_as`        | array        | Nume și grafii alternative.                                                                        |
| `biography`            | șir          | Text localizat, gol când nu există traducere.                                                      |
| `birthday`, `deathday` | șir sau null | `YYYY-MM-DD`. `deathday` este null pentru persoanele în viață.                                     |
| `place_of_birth`       | șir sau null | Text liber.                                                                                        |
| `gender`               | număr întreg | 0 nespecificat, 1 feminin, 2 masculin, 3 non-binar.                                                |
| `known_for_department` | șir          | Meseria principală, de exemplu `Acting` sau `Directing`.                                           |
| `imdb_id`              | șir sau null | ID IMDb de persoană precum `nm0000158`.                                                            |
| `homepage`             | șir sau null | Site oficial.                                                                                      |
| `profile_path`         | șir sau null | Se adaugă la `https://img.amodb.dev/t/p/{size}`. Vezi [imagini](https://amodb.dev/ro/images-api/). |
| `popularity`           | număr        | Scor relativ folosit de lista populară.                                                            |
| `adult`                | boolean      | Mereu `false`. Persoanele pentru adulți nu sunt servite niciodată.                                 |

### Exemplu de răspuns

`GET /3/person/31?language=en-US`, cu biografia scurtată:

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

## Endpoint-uri de filmografie

Trei endpoint-uri listează la ce a lucrat o persoană. Toate primesc `language` și întorc cheile `id`, `cast` și `crew`. Când le atașezi cu `append_to_response`, cheia `id` este omisă.

| Metodă și cale                             | Întoarce                                                                      | Parametri suplimentari |
| ------------------------------------------ | ----------------------------------------------------------------------------- | ---------------------- |
| `GET /person/{person_id}/movie_credits`    | Filme, cu `character` și `order` în `cast` și `department` și `job` în `crew` | niciunul               |
| `GET /person/{person_id}/tv_credits`       | Seriale, cu `character` în `cast` și `department` și `job` în `crew`          | niciunul               |
| `GET /person/{person_id}/combined_credits` | Filme și seriale împreună, fiecare cu `media_type` setat la `movie` sau `tv`  | niciunul               |

Intrările de film poartă `title` și `release_date`. Intrările TV poartă `name` și `first_air_date`, iar intrările TV de distribuție au și o cheie `episode_count`, care este `0` în datele curente. Intrările poartă și `credit_id`, `genre_ids`, `poster_path`, `vote_average` și celelalte câmpuri de listă. Fragmentul de mai jos sortează creditele combinate după dată și afișează cele mai noi cinci.

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

## Liste și imagini

| Metodă și cale                         | Întoarce                                                                                         | Parametri suplimentari |
| -------------------------------------- | ------------------------------------------------------------------------------------------------ | ---------------------- |
| `GET /person/popular`                  | Listă paginată de persoane populare cu titluri `known_for`                                       | `language`, `page`     |
| `GET /person/{person_id}/images`       | Fotografii de profil într-un array `profiles`                                                    | niciunul               |
| `GET /person/{person_id}/external_ids` | `imdb_id`, `wikidata_id`, `facebook_id`, `instagram_id`, `tiktok_id`, `twitter_id`, `youtube_id` | niciunul               |

Intrările populare conțin `id`, `name`, `original_name`, `known_for_department`, `gender`, `profile_path`, `popularity` și un array `known_for`. Paginile merg de la 1 la 500. Fotografiile de profil sunt tratate la [imagini](https://amodb.dev/ro/images-api/), iar ID-urile externe la [căutare după ID extern](https://amodb.dev/ro/find-by-external-id/).

amodb nu oferă traduceri de persoane, cea mai nouă înregistrare de persoană, imagini etichetate sau modificări. Cere în schimb biografia în limba de care ai nevoie cu parametrul `language`.

## Erori

| HTTP | status_code | Când                                                                                 |
| ---- | ----------- | ------------------------------------------------------------------------------------ |
| 401  | 7           | Cheia lipsește sau este greșită.                                                     |
| 402  | 36          | Perioada planului s-a încheiat.                                                      |
| 404  | 34          | Nicio persoană cu acel ID, o persoană pentru adulți sau o cale care 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`.         |

Lista completă este la [erori](https://amodb.dev/ro/errors/), iar ferestrele pe plan sunt la [limite de cereri](https://amodb.dev/ro/rate-limits/).

## Note practice

- Detaliile persoanelor și listele de credite sunt ținute în cache 6 ore. Lista populară este ținută în cache 30 de minute, iar paginile merg de la 1 la 500.
- Adaugă `combined_credits` prin `append_to_response` în loc să faci un al doilea apel. Ambele variante întorc aceleași date.
- În `movie_credits`, fiecare intrare `cast` are o valoare `order`, poziția persoanei pe generic în acel film. Intrările TV nu au `order`, deci sortează-le după `first_air_date`.
- Folosește `known_for_department` ca să decizi ce listă arăți prima: `cast` pentru actori, `crew` pentru regizori și scenariști.
- Caută o persoană după nume la [căutare](https://amodb.dev/ro/search/), apoi folosește ID-ul aici.

## Întrebări și răspunsuri

### Cum obțin filmografia completă a unui actor?

Apelează GET /3/person/{person_id}/combined_credits pentru filme și TV într-un singur răspuns sau adaugă append_to_response=combined_credits la cererea pentru persoană. Fiecare intrare are media_type, ca să poți separa filmele de seriale.

### Ce înseamnă valorile gender?

0 înseamnă nespecificat, 1 feminin, 2 masculin și 3 non-binar. Multe înregistrări păstrează 0, deci nu-l trata ca pe o eroare și nu construi logică ce depinde de el.

### Ce dimensiune ar trebui să folosesc pentru fotografiile de profil?

Folosește w185 pentru liste și h632 pentru paginile de detalii, ambele pe img.amodb.dev. Căile de profil pot fi null, deci ține pregătită o imagine substituent pentru persoanele fără fotografie.

### Există o cale de a căuta persoane după nume?

Da, GET /3/search/person cu un parametru query. Se află pe pagina de căutare, iar ID-ul pe care îl întoarce este person_id folosit de fiecare endpoint de aici.

## Pagini conexe

- [API credite](https://amodb.dev/ro/credits/): API credite cu aceleași căi și același JSON ca TMDB v3. Distribuția și echipa pentru filme, seriale, sezoane și episoade, cu order, department și job.
- [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.
- [API căutare](https://amodb.dev/ro/search/): API căutare cu căile și JSON-ul TMDB v3. Găsește filme, seriale, persoane, colecții, companii și cuvinte-cheie după text, cu filtre de an și paginare.
- [API imagini și gazdă de imagini](https://amodb.dev/ro/images-api/): API imagini filme cu căi TMDB v3: listează postere, imagini de fundal, logouri și cadre, apoi încarcă-le de la img.amodb.dev în 10 dimensiuni, fără cheie.
- [Căutare după ID extern](https://amodb.dev/ro/find-by-external-id/): Caută un film, serial sau o persoană după ID IMDb, TVDB, Wikidata sau Kinopoisk cu endpoint-ul find și citește ID-urile externe și faptele Wikidata.
- [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/people/
