# API dei dettagli della persona

> L'endpoint della persona restituisce un attore, un regista o un membro della troupe per ID su GET /3/person/{person_id}. Il JSON segue TMDB v3: biografia, data e luogo di nascita, immagine del profilo e reparto. Endpoint correlati restituiscono crediti di film, serie e combinati, ID esterni, immagini del profilo e lista dei popolari.

## Endpoint

`GET /3/person/{person_id}`

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

Risposta:

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

## Ottenere i dettagli di una persona

`GET /3/person/{person_id}` restituisce la scheda di base di una persona: nome, biografia, data di nascita, luogo di nascita, reparto, immagine del profilo e ID IMDb. L'ID è l'ID numerico di persona di TMDB, quindi Tom Hanks resta `31` e Leonardo DiCaprio resta `6193`. Chi lavora davanti e dietro la macchina da presa condivide un unico spazio di ID.

L'esempio legge Tom Hanks e aggiunge i suoi crediti combinati, poi stampa il nome, la data di nascita, il reparto principale e quanti crediti da attore ha.

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

| Parametro            | In       | Obbligatorio | Descrizione                                                                                                                                   |
| -------------------- | -------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `person_id`          | percorso | sì           | ID numerico della persona, per esempio `31`.                                                                                                  |
| `api_key`            | query    | uno dei due  | La tua chiave. Usa questa o l'header `Authorization: Bearer`.                                                                                 |
| `language`           | query    | no           | Tag TMDB come `en-US` o `ru-RU`. La biografia viene restituita in quella lingua quando esiste una traduzione.                                 |
| `append_to_response` | query    | no           | Elenco separato da virgole: `movie_credits`, `tv_credits`, `combined_credits`, `external_ids`, `images`. I nomi sconosciuti vengono ignorati. |

### Campi della risposta

| Campo                  | Tipo           | Note                                                                                                 |
| ---------------------- | -------------- | ---------------------------------------------------------------------------------------------------- |
| `id`                   | intero         | ID della persona.                                                                                    |
| `name`                 | stringa        | Nome visualizzato, nella `language` richiesta quando esiste una traduzione.                          |
| `also_known_as`        | array          | Nomi e grafie alternativi.                                                                           |
| `biography`            | stringa        | Testo localizzato, vuoto quando non esiste una traduzione.                                           |
| `birthday`, `deathday` | stringa o null | `YYYY-MM-DD`. `deathday` è null per le persone viventi.                                              |
| `place_of_birth`       | stringa o null | Testo libero.                                                                                        |
| `gender`               | intero         | 0 non specificato, 1 femminile, 2 maschile, 3 non binario.                                           |
| `known_for_department` | stringa        | Mestiere principale, per esempio `Acting` o `Directing`.                                             |
| `imdb_id`              | stringa o null | ID IMDb di persona come `nm0000158`.                                                                 |
| `homepage`             | stringa o null | Sito ufficiale.                                                                                      |
| `profile_path`         | stringa o null | Da accodare a `https://img.amodb.dev/t/p/{size}`. Vedi [immagini](https://amodb.dev/it/images-api/). |
| `popularity`           | numero         | Punteggio relativo usato dalla lista dei popolari.                                                   |
| `adult`                | booleano       | Sempre `false`. Le persone per adulti non vengono mai servite.                                       |

### Risposta di esempio

`GET /3/person/31?language=en-US`, con la biografia accorciata:

```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 della filmografia

Tre endpoint elencano i lavori di una persona. Tutti accettano `language` e restituiscono le chiavi `id`, `cast` e `crew`. Quando li aggiungi con `append_to_response`, la chiave `id` viene omessa.

| Metodo e percorso                          | Restituisce                                                                 | Parametri aggiuntivi |
| ------------------------------------------ | --------------------------------------------------------------------------- | -------------------- |
| `GET /person/{person_id}/movie_credits`    | Film, con `character` e `order` in `cast` e `department` e `job` in `crew`  | nessuno              |
| `GET /person/{person_id}/tv_credits`       | Serie, con `character` in `cast` e `department` e `job` in `crew`           | nessuno              |
| `GET /person/{person_id}/combined_credits` | Film e serie insieme, ciascuno con `media_type` impostato su `movie` o `tv` | nessuno              |

Le voci dei film portano `title` e `release_date`. Le voci delle serie TV portano `name` e `first_air_date`, e le voci di cast delle serie contengono anche una chiave `episode_count` che nei dati attuali è `0`. Le voci portano anche `credit_id`, `genre_ids`, `poster_path`, `vote_average` e gli altri campi di lista. Il frammento qui sotto ordina i crediti combinati per data e stampa i cinque più recenti.

```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 e immagini

| Metodo e percorso                      | Restituisce                                                                                      | Parametri aggiuntivi |
| -------------------------------------- | ------------------------------------------------------------------------------------------------ | -------------------- |
| `GET /person/popular`                  | Lista paginata di persone popolari con i titoli `known_for`                                      | `language`, `page`   |
| `GET /person/{person_id}/images`       | Foto del profilo in un array `profiles`                                                          | nessuno              |
| `GET /person/{person_id}/external_ids` | `imdb_id`, `wikidata_id`, `facebook_id`, `instagram_id`, `tiktok_id`, `twitter_id`, `youtube_id` | nessuno              |

Le voci dei popolari contengono `id`, `name`, `original_name`, `known_for_department`, `gender`, `profile_path`, `popularity` e un array `known_for`. Le pagine vanno da 1 a 500. Le foto del profilo sono trattate nella pagina [immagini](https://amodb.dev/it/images-api/), e gli ID esterni nella pagina [ricerca per ID esterno](https://amodb.dev/it/find-by-external-id/).

amodb non offre traduzioni delle persone, la scheda di persona più recente, immagini taggate né modifiche. Chiedi invece la biografia nella lingua che ti serve con il parametro `language`.

## Errori

| HTTP | status_code | Quando                                                                           |
| ---- | ----------- | -------------------------------------------------------------------------------- |
| 401  | 7           | La chiave manca o è sbagliata.                                                   |
| 402  | 36          | Il periodo del piano è terminato.                                                |
| 404  | 34          | Nessuna persona con quell'ID, una persona per adulti, o un percorso non offerto. |
| 405  | 37          | Hai chiamato un metodo di scrittura.                                             |
| 429  | 25          | Oltre le tue richieste al minuto. Attendi i secondi di `Retry-After`.            |

L'elenco completo è nella pagina [errori](https://amodb.dev/it/errors/), e le finestre per piano sono in [limiti di richieste](https://amodb.dev/it/rate-limits/).

## Note pratiche

- I dettagli della persona e le liste dei crediti restano in cache per 6 ore. La lista dei popolari resta in cache per 30 minuti e le sue pagine vanno da 1 a 500.
- Aggiungi `combined_credits` tramite `append_to_response` invece di fare una seconda chiamata. Entrambi i modi restituiscono gli stessi dati.
- In `movie_credits`, ogni voce di `cast` ha un valore `order`, la posizione della persona nel cast di quel film. Le voci delle serie TV non hanno `order`, quindi ordinale per `first_air_date`.
- Usa `known_for_department` per decidere quale lista mostrare per prima: `cast` per gli attori, `crew` per registi e sceneggiatori.
- Cerca una persona per nome nella pagina [ricerca](https://amodb.dev/it/search/), poi usa qui l'ID.

## Domande e risposte

### Come ottengo l'intera filmografia di un attore?

Chiama GET /3/person/{person_id}/combined_credits per film e serie TV in una sola risposta, oppure aggiungi append_to_response=combined_credits alla richiesta della persona. Ogni voce ha media_type così puoi separare i film dalle serie.

### Cosa significano i valori di gender?

0 significa non specificato, 1 femminile, 2 maschile e 3 non binario. Molte schede restano a 0, quindi non trattarlo come un errore e non costruire logica che ne dipenda.

### Quale dimensione devo usare per le foto del profilo?

Usa w185 per gli elenchi e h632 per le pagine di dettaglio, entrambe su img.amodb.dev. I percorsi del profilo possono essere null, quindi tieni pronta un'immagine segnaposto per le persone senza foto.

### C'è un modo per cercare le persone per nome?

Sì, GET /3/search/person con un parametro query. Sta nella pagina della ricerca, e l'ID che restituisce è il person_id usato da ogni endpoint qui.

## Pagine correlate

- [API dei crediti](https://amodb.dev/it/credits/): API crediti con gli stessi percorsi e JSON di TMDB v3. Ottieni cast e troupe di film, serie, stagioni ed episodi, con i campi order, department e job.
- [API attori](https://amodb.dev/it/actor-api/): API attori sugli endpoint people di TMDB v3. Ottieni biografia, filmografia con i crediti combinati, foto del profilo e lista dei popolari, in 14 lingue.
- [API di ricerca](https://amodb.dev/it/search/): API di ricerca con percorsi e JSON di TMDB v3. Trova film, serie, persone, collezioni, società e parole chiave per testo, con filtri anno e paginazione.
- [API delle immagini e host delle immagini](https://amodb.dev/it/images-api/): API immagini dei film con percorsi TMDB v3: elenca locandine, sfondi, loghi e fermi immagine di ogni titolo e caricali da img.amodb.dev in 10 dimensioni.
- [Ricerca per ID esterno](https://amodb.dev/it/find-by-external-id/): Cerca un film, una serie o una persona per ID IMDb, TVDB, Wikidata o Kinopoisk con l'endpoint find di TMDB, e leggi ID esterni e dati Wikidata di un titolo.
- [Avvio rapido](https://amodb.dev/it/quickstart/): Fai la prima chiamata ad amodb: ottieni una chiave, richiedi i dettagli di un film in curl, JavaScript, Python, PHP o Go, carica la locandina. Meno di 2 minuti.

Aggiornato: 2026-10-18. Source: https://amodb.dev/it/people/
