# API de créditos

> Los endpoints de créditos devuelven el reparto y el equipo técnico de una película en GET /3/movie/{movie_id}/credits, y de series, temporadas y episodios bajo /3/tv. El JSON coincide con TMDB v3, incluidos credit_id, order, department y job. Los créditos de episodio añaden un array guest_stars junto a crew, y su array cast está vacío.

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

Respuesta:

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

## Obtener los créditos de una película

`GET /3/movie/{movie_id}/credits` devuelve dos arrays para una película: `cast` para las personas que aparecen en pantalla y `crew` para quienes trabajaron detrás de la cámara. Cada entrada incluye el id de la persona, así que puedes abrir su registro completo en la página de [personas](https://amodb.dev/es/people/). Los mismos datos están disponibles dentro de la respuesta de la película con `append_to_response=credits`.

El ejemplo lee Inception, imprime al director y lista a los cinco primeros actores de los créditos.

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

### Parámetros

| Parámetro  | En       | Obligatorio    | Descripción                                                                                          |
| ---------- | -------- | -------------- | ---------------------------------------------------------------------------------------------------- |
| `movie_id` | ruta     | sí             | Id numérico de la película, por ejemplo `27205`.                                                     |
| `api_key`  | consulta | uno de los dos | Tu clave. Usa esta o el encabezado `Authorization: Bearer`.                                          |
| `language` | consulta | no             | Etiqueta de TMDB como `en-US` o `fr-FR`. Las etiquetas fuera de los 14 idiomas base recurren a `en`. |

### Campos de la respuesta

| Campo                           | Se aplica a                | Notas                                                                                                                                             |
| ------------------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                            | nivel superior             | Id de la película, serie, temporada o episodio al que pertenecen los créditos.                                                                    |
| `cast`, `crew`                  | nivel superior             | Arrays de entradas. Los créditos de episodio añaden `guest_stars`.                                                                                |
| `id`                            | cada entrada               | Id de la persona. Ábrelo con [personas](https://amodb.dev/es/people/).                                                                            |
| `name`, `original_name`         | cada entrada               | El nombre de la persona.                                                                                                                          |
| `known_for_department`          | cada entrada               | El trabajo principal de la persona en general, no su trabajo en este título.                                                                      |
| `gender`, `popularity`, `adult` | cada entrada               | Mismo significado que en el registro de la persona.                                                                                               |
| `profile_path`                  | cada entrada               | Ruta de imagen o null. Añádela a `https://img.amodb.dev/t/p/{size}`.                                                                              |
| `credit_id`                     | cada entrada               | Cadena que identifica este crédito concreto.                                                                                                      |
| `character`                     | reparto, actores invitados | Nombre del papel, vacío en algunas entradas.                                                                                                      |
| `order`                         | reparto, actores invitados | Posición en los créditos, `0` es la primera.                                                                                                      |
| `department`                    | equipo técnico             | Grupo como `Directing`, `Writing`, `Production`, `Camera`, `Editing`, `Sound`, `Art`, `Visual Effects`, `Lighting`, `Costume & Make-Up` o `Crew`. |
| `job`                           | equipo técnico             | Trabajo concreto, por ejemplo `Director`, `Screenplay` o `Editor`.                                                                                |

### Ejemplo de respuesta

`GET /3/movie/27205/credits?language=en-US`. La respuesta tiene hoy 52 entradas de reparto y 735 de equipo técnico, así que ambos arrays se cortan a dos aquí:

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

## Créditos de TV, de temporada y de episodio

Todas las rutas de abajo comparten la base `https://api.amodb.dev/3` y aceptan `language`.

| Método y ruta                                                                 | Devuelve                                                               |
| ----------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| `GET /tv/{series_id}/credits`                                                 | Reparto y equipo técnico de la serie, una entrada por persona y papel. |
| `GET /tv/{series_id}/season/{season_number}/credits`                          | Reparto y equipo técnico de una temporada.                             |
| `GET /tv/{series_id}/season/{season_number}/episode/{episode_number}/credits` | `crew` y `guest_stars` de un episodio. `cast` es un array vacío.       |

Los mismos datos están disponibles con `append_to_response=credits` en las rutas de serie, temporada y episodio. La forma de las entradas coincide con los créditos de película de arriba. Los actores invitados de un episodio traen `character` y `order`, y las entradas del equipo técnico traen `department` y `job`.

`GET /3/tv/1399/season/1/episode/1/credits?language=en-US`, con los arrays cortados a dos entradas:

```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 no ofrece créditos agregados de TV ni una búsqueda por `credit_id`. Para el reparto de una serie, lee `/tv/{series_id}/credits` y ordena `cast` por `order`.

## Leer el reparto y el equipo técnico en una aplicación

| Tarea                                     | Cómo                                                                                                            |
| ----------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| Mostrar al director                       | Elige las entradas de `crew` con `job` igual a `Director`. Una película puede tener varios.                     |
| Mostrar el reparto principal              | Ordena `cast` por `order` y toma los primeros 10.                                                               |
| Agrupar el equipo técnico                 | Agrupa por `department`. Una persona con dos trabajos aparece dos veces, así que une por el `id` de la persona. |
| Mostrar el reparto de una serie           | Lee los créditos de la serie y ordena `cast` por `order`.                                                       |
| Listar todos los departamentos y trabajos | Lee la lista de consulta descrita en [géneros y listas de consulta](https://amodb.dev/es/genres/).              |

## Errores

| HTTP | status_code | Cuándo                                                                      |
| ---- | ----------- | --------------------------------------------------------------------------- |
| 401  | 7           | La clave falta o es incorrecta.                                             |
| 402  | 36          | El periodo del plan ha terminado.                                           |
| 404  | 34          | La película, serie, temporada o episodio no existe, o la ruta no se ofrece. |
| 405  | 37          | Llamaste a un método de escritura.                                          |
| 429  | 25          | Superaste tus solicitudes por minuto. Espera los segundos de `Retry-After`. |

Los detalles están en [errores](https://amodb.dev/es/errors/) y [límites de solicitudes](https://amodb.dev/es/rate-limits/).

## Notas prácticas

- Los créditos se guardan en caché 6 horas, como los detalles. Un nuevo miembro del reparto puede tardar ese tiempo en aparecer.
- Una producción grande puede listar cientos de entradas de equipo técnico. Recorta los arrays antes de mostrarlos.
- `profile_path` es null para las personas sin foto. Usa `w185` para las filas de lista y `h632` para las vistas de detalle.
- Los registros de películas y de TV están en [películas](https://amodb.dev/es/movies/) y [series de TV](https://amodb.dev/es/tv-series/). Los registros de temporadas y episodios están en [temporadas y episodios](https://amodb.dev/es/tv-seasons-episodes/).

## Preguntas y respuestas

### ¿Cómo obtengo el reparto de una serie?

Llama a GET /3/tv/{series_id}/credits y ordena el array cast por order. Los créditos de temporada cubren una sola temporada, y los de episodio añaden guest_stars. amodb no ofrece créditos agregados de TV.

### ¿Cómo encuentro al director de una película?

Lee el array crew y elige la entrada cuyo job sea Director. Una película puede tener más de un director, así que reúne todas las coincidencias en lugar de detenerte en la primera.

### ¿Qué significa el campo order?

Order es la posición de un miembro del reparto en los créditos, con 0 para el primero. Ordena cast por order para mostrar primero los papeles principales. Las entradas de crew no tienen order.

### ¿De dónde salen los actores invitados?

Solo el endpoint de créditos de episodio devuelve un array guest_stars, junto a crew. Su array cast está vacío. Los créditos de temporada y de serie no listan a los invitados por separado.

## Páginas relacionadas

- [API de detalles de persona](https://amodb.dev/es/people/): API de detalles de persona con rutas y JSON de TMDB v3. Obtén un actor o miembro del equipo por id, con biografía, filmografía, ids externos y populares.
- [API de detalles de película](https://amodb.dev/es/movies/): API de detalles de película con rutas y JSON de TMDB v3. Obtén una película por id y añade créditos, puntuaciones y moods con append_to_response, en 14 idiomas.
- [API de series de TV](https://amodb.dev/es/tv-series/): API de series de TV con las mismas rutas y JSON que TMDB v3. Obtén una serie con temporadas, cadenas y próximo episodio, más clasificaciones y plataformas.
- [API de temporadas y episodios de TV](https://amodb.dev/es/tv-seasons-episodes/): API de temporadas y episodios de TV con las mismas rutas y JSON que TMDB v3. Lee una temporada con todos sus episodios, o un episodio con fecha y duración.
- [API de actores](https://amodb.dev/es/actor-api/): API de actores con los endpoints de personas de TMDB v3. Obtén biografía, filmografía con créditos combinados, fotos de perfil y lista popular, en 14 idiomas.
- [Inicio rápido](https://amodb.dev/es/quickstart/): Haz tu primera llamada a amodb: consigue una clave, pide los detalles de una película en curl, JavaScript, Python, PHP o Go y carga el póster. En 2 minutos.

Actualizado: 2026-10-18. Source: https://amodb.dev/es/credits/
