# API de detalhes de pessoas

> O endpoint de pessoa retorna um ator, diretor ou membro da equipe técnica por id em GET /3/person/{person_id}. O JSON segue o TMDB v3: biografia, aniversário, local de nascimento, imagem de perfil e departamento. Endpoints auxiliares retornam créditos de filmes, de TV e combinados, ids externos, imagens de perfil e a lista de populares.

## Endpoint

`GET /3/person/{person_id}`

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

Resposta:

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

## Obter os detalhes de uma pessoa

`GET /3/person/{person_id}` retorna o registro principal de uma pessoa: nome, biografia, aniversário, local de nascimento, departamento, imagem de perfil e id do IMDb. O id é o id numérico de pessoa do TMDB, então Tom Hanks continua sendo `31` e Leonardo DiCaprio continua sendo `6193`. Quem trabalha diante e atrás das câmeras compartilha um só espaço de ids.

O exemplo lê Tom Hanks e acrescenta os créditos combinados dele, depois exibe o nome, o aniversário, o departamento principal e quantos créditos de atuação ele tem.

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

### Parâmetros

| Parâmetro            | Em       | Obrigatório | Descrição                                                                                                                                    |
| -------------------- | -------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `person_id`          | caminho  | sim         | Id numérico da pessoa, por exemplo `31`.                                                                                                     |
| `api_key`            | consulta | um dos dois | Sua chave. Use este parâmetro ou o header `Authorization: Bearer`.                                                                           |
| `language`           | consulta | não         | Tag do TMDB como `en-US` ou `ru-RU`. A biografia é retornada nesse idioma quando existe tradução.                                            |
| `append_to_response` | consulta | não         | Lista separada por vírgulas: `movie_credits`, `tv_credits`, `combined_credits`, `external_ids`, `images`. Nomes desconhecidos são ignorados. |

### Campos da resposta

| Campo                  | Tipo           | Observações                                                                                        |
| ---------------------- | -------------- | -------------------------------------------------------------------------------------------------- |
| `id`                   | inteiro        | Id da pessoa.                                                                                      |
| `name`                 | string         | Nome de exibição, no `language` pedido quando existe tradução.                                     |
| `also_known_as`        | array          | Nomes e grafias alternativos.                                                                      |
| `biography`            | string         | Texto localizado, vazio quando não existe tradução.                                                |
| `birthday`, `deathday` | string ou null | `YYYY-MM-DD`. `deathday` é null para pessoas vivas.                                                |
| `place_of_birth`       | string ou null | Texto livre.                                                                                       |
| `gender`               | inteiro        | 0 não especificado, 1 feminino, 2 masculino, 3 não binário.                                        |
| `known_for_department` | string         | Função principal, por exemplo `Acting` ou `Directing`.                                             |
| `imdb_id`              | string ou null | Id de pessoa do IMDb, como `nm0000158`.                                                            |
| `homepage`             | string ou null | Site oficial.                                                                                      |
| `profile_path`         | string ou null | Acrescente a `https://img.amodb.dev/t/p/{size}`. Veja [imagens](https://amodb.dev/pt/images-api/). |
| `popularity`           | número         | Valor relativo usado pela lista de populares.                                                      |
| `adult`                | booleano       | Sempre `false`. Registros adultos nunca são atendidos.                                             |

### Exemplo de resposta

`GET /3/person/31?language=en-US`, com a biografia abreviada:

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

## Endpoints de filmografia

Três endpoints listam em que uma pessoa trabalhou. Todos aceitam `language` e retornam as chaves `id`, `cast` e `crew`. Quando você os acrescenta com `append_to_response`, a chave `id` fica de fora.

| Método e caminho                           | Retorna                                                                        | Parâmetros extras |
| ------------------------------------------ | ------------------------------------------------------------------------------ | ----------------- |
| `GET /person/{person_id}/movie_credits`    | Filmes, com `character` e `order` em `cast` e `department` e `job` em `crew`   | nenhum            |
| `GET /person/{person_id}/tv_credits`       | Séries, com `character` em `cast` e `department` e `job` em `crew`             | nenhum            |
| `GET /person/{person_id}/combined_credits` | Filmes e séries juntos, cada um com `media_type` definido como `movie` ou `tv` | nenhum            |

As entradas de filmes trazem `title` e `release_date`. As entradas de TV trazem `name` e `first_air_date`, e as entradas de elenco de TV também têm uma chave `episode_count` que vale `0` nos dados atuais. As entradas também trazem `credit_id`, `genre_ids`, `poster_path`, `vote_average` e os outros campos de lista. O trecho abaixo ordena os créditos combinados por data e exibe os cinco mais novos.

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

## Listas e imagens

| Método e caminho                       | Retorna                                                                                          | Parâmetros extras  |
| -------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------ |
| `GET /person/popular`                  | Lista paginada de pessoas populares com títulos em `known_for`                                   | `language`, `page` |
| `GET /person/{person_id}/images`       | Fotos de perfil em um array `profiles`                                                           | nenhum             |
| `GET /person/{person_id}/external_ids` | `imdb_id`, `wikidata_id`, `facebook_id`, `instagram_id`, `tiktok_id`, `twitter_id`, `youtube_id` | nenhum             |

As entradas de populares contêm `id`, `name`, `original_name`, `known_for_department`, `gender`, `profile_path`, `popularity` e um array `known_for`. As páginas vão de 1 a 500. As fotos de perfil estão em [imagens](https://amodb.dev/pt/images-api/), e os ids externos estão em [buscar por ID externo](https://amodb.dev/pt/find-by-external-id/).

O amodb não oferece traduções de pessoa, o registro de pessoa mais recente, imagens marcadas nem changes. Peça a biografia no idioma de que você precisa com o parâmetro `language`.

## Erros

| HTTP | status_code | Quando                                                                                        |
| ---- | ----------- | --------------------------------------------------------------------------------------------- |
| 401  | 7           | A chave está ausente ou incorreta.                                                            |
| 402  | 36          | O período do plano terminou.                                                                  |
| 404  | 34          | Nenhuma pessoa com esse id, um registro adulto ou um caminho que não é oferecido.             |
| 405  | 37          | Você chamou um método de escrita.                                                             |
| 429  | 25          | Acima do seu limite de requisições por minuto. Espere os segundos indicados em `Retry-After`. |

A lista completa está em [erros](https://amodb.dev/pt/errors/), e as janelas por plano estão em [limites de requisições](https://amodb.dev/pt/rate-limits/).

## Notas práticas

- Os detalhes de pessoas e as listas de créditos ficam em cache por 6 horas. A lista de populares fica em cache por 30 minutos, e as páginas vão de 1 a 500.
- Adicione `combined_credits` por meio de `append_to_response` em vez de fazer uma segunda chamada. Os dois jeitos retornam os mesmos dados.
- Em `movie_credits`, cada entrada de `cast` tem um valor `order`, a posição da pessoa nos créditos daquele filme. As entradas de TV não têm `order`, então ordene-as por `first_air_date`.
- Use `known_for_department` para decidir qual lista mostrar primeiro: `cast` para atores, `crew` para diretores e roteiristas.
- Procure uma pessoa pelo nome na [busca](https://amodb.dev/pt/search/) e use o id aqui.

## Perguntas e respostas

### Como obtenho a filmografia completa de um ator?

Chame GET /3/person/{person_id}/combined_credits para ter filmes e séries em uma só resposta, ou adicione append_to_response=combined_credits à requisição da pessoa. Cada entrada tem media_type, para você separar filmes de séries.

### O que significam os valores de gender?

0 quer dizer não especificado, 1 feminino, 2 masculino e 3 não binário. Muitos registros mantêm 0, então não trate isso como erro nem crie lógica que dependa desse valor.

### Que tamanho devo usar para fotos de perfil?

Use w185 para listas e h632 para páginas de detalhe, ambos em img.amodb.dev. Os caminhos de perfil podem ser null, então tenha uma imagem substituta pronta para pessoas sem foto.

### Dá para buscar pessoas pelo nome?

Sim, com GET /3/search/person e o parâmetro query. Ele fica na página de busca, e o id que retorna é o person_id usado por todos os endpoints desta página.

## Páginas relacionadas

- [API de créditos](https://amodb.dev/pt/credits/): API de créditos com caminhos e JSON iguais aos do TMDB v3. Elenco e equipe técnica de filmes, séries, temporadas e episódios, com order, department e job.
- [API de atores](https://amodb.dev/pt/actor-api/): API de atores nos endpoints de pessoas do TMDB v3. Obtenha biografia, filmografia por créditos combinados, fotos de perfil e lista de populares em 14 idiomas.
- [API de busca](https://amodb.dev/pt/search/): API de busca com caminhos e JSON do TMDB v3. Encontre filmes, séries, pessoas, coleções, produtoras e palavras-chave por texto, com filtro de ano e paginação.
- [API de imagens e host de imagens](https://amodb.dev/pt/images-api/): API de imagens de filmes com caminhos do TMDB v3: liste pôsteres, backdrops, logos e stills por título e carregue-os de img.amodb.dev em 10 tamanhos, sem chave.
- [Buscar por ID externo](https://amodb.dev/pt/find-by-external-id/): Busque um filme, série ou pessoa por id do IMDb, TVDB, Wikidata ou Kinopoisk com o endpoint find do TMDB e leia ids externos e dados do Wikidata de um título.
- [Início rápido](https://amodb.dev/pt/quickstart/): Faça sua primeira chamada ao amodb: obtenha uma chave, peça um filme em curl, JavaScript, Python, PHP ou Go e carregue o pôster. Menos de 2 minutos.

Atualizado: 2026-10-18. Source: https://amodb.dev/pt/people/
