# Tendances et points de terminaison de listes

> Les points de terminaison de tendances et de listes renvoient des pages classées de films, séries ou personnes. Utilisez GET /3/trending/{media_type}/{time_window} pour les classements du jour et de la semaine, et les chemins movie et tv pour les titres populaires, mieux notés, à l'affiche, à venir ou diffusés. Chaque page contient 20 résultats, en cache 30 minutes.

## Point de terminaison

`GET /3/trending/{media_type}/{time_window}`

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

Réponse:

```json
{
  "page": 1,
  "results": [
    {
      "adult": false,
      "backdrop_path": "/mBZKC8ActTlM4W3HEGI1Cl1RtO3.jpg",
      "genre_ids": [
        878,
        9648,
        28
      ],
      "id": 1058424,
      "original_language": "ko",
      "original_title": "호프",
      "overview": "In the remote South Korean village of Hope Harbor, police chief Bum-seok and officer Sung-ae are called to investigate a mysterious creature wreaking havoc on the community. But all is not as it seems, and perceptions can be misleading. Wha...",
      "popularity": 368.4952,
      "poster_path": "/bcK5naYzzfY0JBCgrPrsrbV6NO1.jpg",
      "release_date": "2026-07-15",
      "title": "Hope",
      "video": false,
      "vote_average": 6.9,
      "vote_count": 256,
      "media_type": "movie"
    },
    {
      "adult": false,
      "backdrop_path": "/5YfPIIMzGBkIjHt3PTXBWyfBTGS.jpg",
      "genre_ids": [
        28,
        14
      ],
      "id": 1153576,
      "original_language": "en",
      "original_title": "Street Fighter",
      "overview": "In 1993, estranged Street Fighters Ryu and Ken Masters are thrown back into combat when the mysterious Chun-Li recruits them for the next World Warrior Tournament: a brutal clash of fists, fate, and fury. But behind this battle royale lies...",
      "popularity": 225.4202,
      "poster_path": "/utKzCSCz2HtXwcDGfWLj2IHhSob.jpg",
      "release_date": "2026-10-13",
      "title": "Street Fighter",
      "video": false,
      "vote_average": 6.365,
      "vote_count": 85,
      "media_type": "movie"
    },
    {
      "adult": false,
      "backdrop_path": "/tanwf7KOwQ6dxZzehKsXkffIJOd.jpg",
      "genre_ids": [
        878,
        28,
        12
      ],
      "id": 969681,
      "original_language": "en",
      "original_title": "Spider-Man: Brand New Day",
      "overview": "Fighting crime full-time as Spider-Man in a world that doesn't remember him—and the pressure of seeing his old friends move on without him—sparks a change in Peter Parker he may not have the power to control. But that transformation might a...",
      "popularity": 655.4447,
      "poster_path": "/bjiS5ipwxb9JFy3XRRN4OAilSeX.jpg",
      "release_date": "2026-07-29",
      "title": "Spider-Man: Brand New Day",
      "video": false,
      "vote_average": 8.469,
      "vote_count": 5725,
      "media_type": "movie"
    }
  ],
  "total_pages": 500,
  "total_results": 10000
}
```

## Obtenir les titres tendance

`GET /3/trending/{media_type}/{time_window}` renvoie une page classée de ce que les gens regardent ou recherchent en ce moment. `media_type` vaut `all`, `movie`, `tv` ou `person`. `time_window` vaut `day` ou `week`. Les classements du jour bougent vite et conviennent à un bandeau « ce soir ». Les classements de la semaine sont plus stables et conviennent à une page d'accueil.

L'exemple demande le classement hebdomadaire des films et affiche les dix premiers titres.

```bash
curl -s "https://api.amodb.dev/3/trending/movie/week?language=en-US&page=1" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```js
const url = 'https://api.amodb.dev/3/trending/movie/week?language=en-US&page=1';
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` } });
if (!res.ok) throw new Error(`amodb returned ${res.status}`);
const chart = await res.json();
for (const [i, m] of chart.results.slice(0, 10).entries()) {
  console.log(i + 1, m.title, m.release_date);
}
```

```python
import os
import requests

r = requests.get(
    "https://api.amodb.dev/3/trending/movie/week",
    params={"language": "en-US", "page": 1},
    headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
    timeout=10,
)
r.raise_for_status()
for i, m in enumerate(r.json()["results"][:10], start=1):
    print(i, m["title"], m.get("release_date"))
```

```php
<?php
$url = 'https://api.amodb.dev/3/trending/movie/week?language=en-US&page=1';
$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");
}
$chart = json_decode($body, true);
foreach (array_slice($chart['results'], 0, 10) as $i => $m) {
    echo ($i + 1), ' ', $m['title'], ' ', $m['release_date'] ?? '', PHP_EOL;
}
```

```go
package main

import (
	"encoding/json"
	"fmt"
	"net/http"
	"os"
	"time"
)

type Chart struct {
	Results []struct {
		Title       string `json:"title"`
		ReleaseDate string `json:"release_date"`
	} `json:"results"`
}

func main() {
	url := "https://api.amodb.dev/3/trending/movie/week?language=en-US&page=1"
	req, _ := http.NewRequest("GET", url, 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 chart Chart
	if err := json.NewDecoder(res.Body).Decode(&chart); err != nil {
		panic(err)
	}
	for i, m := range chart.Results {
		if i == 10 {
			break
		}
		fmt.Println(i+1, m.Title, m.ReleaseDate)
	}
}
```

### Paramètres

| Paramètre     | Dans    | Requis        | Description                                                                                                   |
| ------------- | ------- | ------------- | ------------------------------------------------------------------------------------------------------------- |
| `media_type`  | chemin  | oui           | `all`, `movie`, `tv` ou `person`.                                                                             |
| `time_window` | chemin  | oui           | `day` ou `week`.                                                                                              |
| `api_key`     | requête | l'un des deux | Votre clé. Utilisez-la ou l'en-tête `Authorization: Bearer`.                                                  |
| `language`    | requête | non           | Balise TMDB comme `en-US` ou `ru-RU`. 14 langues de base sont servies, tout le reste se replie sur l'anglais. |
| `page`        | requête | non           | Numéro de page de 1 à 500. Chaque page contient 20 résultats.                                                 |

### Champs de la réponse

| Champ                                                     | Type             | Remarques                                                                                                                                         |
| --------------------------------------------------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `page`                                                    | entier           | La page demandée.                                                                                                                                 |
| `results`                                                 | tableau          | Objets de films, de séries ou de personnes, le meilleur rang en premier.                                                                          |
| `total_pages`, `total_results`                            | entier           | Totaux de pagination. Les classements de tendances annoncent au plus 500 pages et 10000 résultats.                                                |
| `media_type`                                              | chaîne           | `movie`, `tv` ou `person` sur chaque élément de tendance. Lisez-le quand vous demandez `all`.                                                     |
| `id`                                                      | entier           | À utiliser avec [films](https://amodb.dev/fr/movies/), [séries TV](https://amodb.dev/fr/tv-series/) ou [personnes](https://amodb.dev/fr/people/). |
| `title`, `original_title`                                 | chaîne           | Éléments de films. Les éléments de séries utilisent `name` et `original_name`.                                                                    |
| `release_date`, `first_air_date`                          | chaîne           | `YYYY-MM-DD` pour les éléments de films et de séries.                                                                                             |
| `genre_ids`                                               | tableau          | Identifiants numériques. Les noms viennent de [genres](https://amodb.dev/fr/genres/).                                                             |
| `popularity`, `vote_average`, `vote_count`                | nombre           | Entrées du classement et note agrégée des utilisateurs.                                                                                           |
| `poster_path`, `backdrop_path`, `profile_path`            | chaîne ou null   | À ajouter à `https://img.amodb.dev/t/p/{size}`.                                                                                                   |
| `name`, `original_name`, `gender`, `known_for_department` | chaîne ou entier | Éléments de personnes. `known_for` est un tableau vide sur les éléments de personnes en tendance.                                                 |

### Exemple de réponse

```json
{
  "page": 1,
  "results": [
    {
      "adult": false,
      "backdrop_path": "/7ULXMNvmZSi13zN3EZjz8wbER9B.jpg",
      "genre_ids": [28, 53],
      "id": 1561726,
      "original_language": "en",
      "original_title": "Masterplan",
      "overview": "When a legendary thief sets his sights on the Mona Lisa, he recruits two young strangers to help him before...",
      "popularity": 189.8286,
      "poster_path": "/3x3AfF0qVwSUDDciTaNKcPHZUN8.jpg",
      "release_date": "2026-10-16",
      "title": "Masterplan",
      "video": false,
      "vote_average": 7.279,
      "vote_count": 61,
      "media_type": "movie"
    },
    {
      "adult": false,
      "backdrop_path": "/mBZKC8ActTlM4W3HEGI1Cl1RtO3.jpg",
      "genre_ids": [878, 9648, 28],
      "id": 1058424,
      "original_language": "ko",
      "original_title": "호프",
      "overview": "In the remote South Korean village of Hope Harbor, police chief Bum-seok and officer Sung-ae are called to...",
      "popularity": 294.6518,
      "poster_path": "/bcK5naYzzfY0JBCgrPrsrbV6NO1.jpg",
      "release_date": "2026-07-15",
      "title": "Hope",
      "video": false,
      "vote_average": 6.917,
      "vote_count": 246,
      "media_type": "movie"
    },
    {
      "adult": false,
      "backdrop_path": "/5YfPIIMzGBkIjHt3PTXBWyfBTGS.jpg",
      "genre_ids": [28, 14],
      "id": 1153576,
      "original_language": "en",
      "original_title": "Street Fighter",
      "overview": "In 1993, estranged Street Fighters Ryu and Ken Masters are thrown back into combat when the mysterious Chun...",
      "popularity": 209.3923,
      "poster_path": "/utKzCSCz2HtXwcDGfWLj2IHhSob.jpg",
      "release_date": "2026-10-13",
      "title": "Street Fighter",
      "video": false,
      "vote_average": 6.316,
      "vote_count": 76,
      "media_type": "movie"
    }
  ],
  "total_pages": 500,
  "total_results": 10000
}
```

La réponse a été récupérée depuis l'API réelle et réduite à 3 des 20 entrées de la page 1. Les longues chaînes `overview` sont raccourcies, et les rangs et les compteurs changent à chaque actualisation.

## Listes de films

Les classements de films partagent une même forme : un tableau `results` paginé d'objets de films. `now_playing` et `upcoming` ajoutent un objet `dates` avec `minimum` et `maximum`, la fenêtre de sortie que couvre la liste. Les quatre acceptent `language`, `page` et `region`.

| Méthode et chemin        | Renvoie                                                                        |
| ------------------------ | ------------------------------------------------------------------------------ |
| `GET /movie/now_playing` | Films sortis dans la fenêtre `dates` autour d'aujourd'hui, plus `dates`        |
| `GET /movie/popular`     | Films classés par popularité actuelle                                          |
| `GET /movie/top_rated`   | Films classés par note des utilisateurs                                        |
| `GET /movie/upcoming`    | Films dont la date de sortie est à venir, plus `dates`                         |
| `GET /movie/latest`      | Un objet de film : la plus récente entrée du catalogue. Ce n'est pas une liste |

Un vrai objet `dates` ressemble à ceci :

```json
{ "dates": { "maximum": "2026-10-21", "minimum": "2026-09-09" } }
```

`region` est un code ISO 3166-1 en majuscules comme `DE` ou `GB`. Sur `now_playing` et `upcoming`, il ne garde que les titres sortis dans ce pays : la liste n'est donc qu'une petite partie de la liste mondiale. Un code inconnu renvoie une liste vide. Sur `popular` et `top_rated`, il remplace seulement `release_date` par la date locale et ne change pas le classement. Pour voir où un film passe, associez `now_playing` à [séances](https://amodb.dev/fr/showtimes/).

## Listes de séries

Les classements de séries renvoient les mêmes champs de pagination. Les éléments utilisent `name`, `original_name`, `first_air_date` et `origin_country` à la place des noms de films. Les quatre acceptent `language` et `page`.

| Méthode et chemin      | Renvoie                                                                         | Paramètres supplémentaires |
| ---------------------- | ------------------------------------------------------------------------------- | -------------------------- |
| `GET /tv/airing_today` | Séries dont un épisode est diffusé aujourd'hui                                  | `timezone`                 |
| `GET /tv/on_the_air`   | Séries dont un épisode est diffusé dans les jours à venir                       | `timezone`                 |
| `GET /tv/popular`      | Séries classées par popularité actuelle                                         | aucun                      |
| `GET /tv/top_rated`    | Séries classées par note des utilisateurs                                       | aucun                      |
| `GET /tv/latest`       | Un objet de série : la plus récente entrée du catalogue. Ce n'est pas une liste | aucun                      |

`timezone` est un nom IANA comme `Europe/Rome`. Il décide quel jour du calendrier compte pour « aujourd'hui » : `airing_today` renvoie donc un ensemble différent pour `Asia/Tokyo` et pour `Pacific/Auckland`. Les listes de séries n'ont pas de paramètre `region`.

## Listes de personnes

`GET /person/popular` renvoie une liste paginée de personnes classées par popularité, avec `language` et `page`. Chaque entrée a `id`, `name`, `original_name`, `known_for_department`, `gender`, `profile_path`, `popularity` et un tableau `known_for` d'au plus 3 cartes de films ou de séries, chacune avec `media_type`. Ouvrez une personne sur [personnes](https://amodb.dev/fr/people/).

```json
{
  "page": 1,
  "results": [
    {
      "adult": false,
      "gender": 1,
      "id": 1247604,
      "known_for_department": "Acting",
      "name": "Agnez Mo",
      "original_name": "Agnez Mo",
      "popularity": 45.8988,
      "profile_path": "/7GuBJxf5szQRCKLk3iG2ztfCo39.jpg",
      "known_for": [
        {
          "adult": false,
          "backdrop_path": "/pF0qkRsrHkdYadPWY9AMeFZfcwk.jpg",
          "first_air_date": "2022-02-03",
          "genre_ids": [10759],
          "id": 108978,
          "name": "Reacher",
          "origin_country": ["US"],
          "original_language": "en",
          "original_name": "Reacher",
          "overview": "Jack Reacher, a veteran military police investigator, has just recently enter...",
          "popularity": 411.841,
          "poster_path": "/f1VCQIG2iCyOookdgOzwtUpwWC0.jpg",
          "vote_average": 8.1,
          "vote_count": 3508,
          "media_type": "tv"
        }
      ]
    }
  ],
  "total_pages": 1001,
  "total_results": 20001
}
```

amodb ne propose ni `person/latest` ni les flux `changes`.

## Choisir la bonne liste pour un écran

| Écran                                  | Appel                                    | Actualisation                 |
| -------------------------------------- | ---------------------------------------- | ----------------------------- |
| Bandeau principal de la page d'accueil | `/trending/all/week`                     | Toutes les 30 minutes au plus |
| Onglet « Au cinéma »                   | `/movie/now_playing` avec votre `region` | Toutes les 30 minutes au plus |
| Onglet « Bientôt »                     | `/movie/upcoming` avec votre `region`    | Toutes les 30 minutes au plus |
| Bandeau « Ce soir à la télé »          | `/tv/airing_today` avec un `timezone`    | Toutes les 30 minutes au plus |
| Favoris de tous les temps              | `/movie/top_rated`                       | Une fois par jour suffit      |
| Personnes recherchées en ce moment     | `/trending/person/day`                   | Toutes les 30 minutes au plus |
| Personnes les plus populaires          | `/person/popular`                        | Toutes les 30 minutes au plus |

## Erreurs

| HTTP | status_code | Quand                                                                                                                                                 |
| ---- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| 401  | 7           | La clé est absente ou fausse.                                                                                                                         |
| 402  | 36          | La période de l'offre est terminée.                                                                                                                   |
| 404  | 34          | Le chemin n'existe pas, par exemple un nom de liste mal orthographié ou un `media_type` ou `time_window` qui ne figure pas dans les listes ci-dessus. |
| 405  | 37          | Vous avez utilisé une méthode d'écriture sur un chemin de liste.                                                                                      |
| 429  | 25          | Vous avez dépassé vos requêtes par minute. Attendez les secondes de `Retry-After`.                                                                    |
| 500  | 11          | Une `page` au-dessus de 500.                                                                                                                          |

Le tableau complet est sur la page [erreurs](https://amodb.dev/fr/errors/). Les limites par offre sont sur [limites de débit](https://amodb.dev/fr/rate-limits/).

## Remarques pratiques

- La périphérie met en cache 30 minutes les listes de tendances, de populaires, à l'affiche et en cours de diffusion, et chaque clé partage la même entrée. Une tâche d'actualisation toutes les 30 minutes suffit.
- Les pages vont de 1 à 500. Les listes de populaires annoncent un `total_results` de 20001, qui est un plafond et non un vrai compte. Au-delà de la page 500, utilisez [découverte](https://amodb.dev/fr/discover/) avec `sort_by` et des filtres, qui atteint des titres qu'un classement ne montre jamais.
- Les éléments de liste ne contiennent que les champs nécessaires à une carte. Pour la durée, imdb_id ou les crédits, appelez les [détails du film](https://amodb.dev/fr/movies/) avec `append_to_response`, une fois par carte que l'utilisateur ouvre.
- `language` contrôle la langue des titres et des résumés. Les titres sans traduction reviennent dans le texte d'origine : testez donc les chaînes vides avant d'afficher une carte.
- Stockez l'`id` d'une liste, pas la position. Les rangs changent à chaque actualisation.

## Questions et réponses

### Combien de temps les listes de tendances et de populaires sont-elles mises en cache ?

La périphérie met en cache 30 minutes les listes de tendances, de populaires, à l'affiche et en cours de diffusion, et partage chaque entrée entre les clés. Interroger plus vite que toutes les 30 minutes renvoie la même page et dépense des requêtes pour rien.

### Combien de pages puis-je lire dans une liste ?

Les pages vont de 1 à 500 avec 20 résultats chacune, mêmes limites que TMDB. Pour une navigation plus profonde, utilisez discover, qui filtre par genre, année, distribution ou société au lieu de suivre un seul classement fixe.

### Quelles listes acceptent le paramètre region ?

now_playing et upcoming prennent region comme code pays à deux lettres en majuscules comme GB et ne gardent que les titres sortis là. popular et top_rated l'acceptent mais ne remplacent que release_date par la date locale. Les listes de séries n'ont pas de region. airing_today et on_the_air utilisent timezone.

### Puis-je filtrer un classement par genre ?

Pas sur ces chemins. Les éléments de liste portent genre_ids pour l'affichage. Pour filtrer par genre, utilisez discover avec with_genres, et transformez les identifiants en noms avec les points de terminaison de listes de genres.

## Pages liées

- [API de détails de film](https://amodb.dev/fr/movies/): API de détails de film aux chemins et au JSON de TMDB v3. Obtenez un film par id, ajoutez crédits, notes et ambiances avec append_to_response, en 14 langues.
- [API des séries TV](https://amodb.dev/fr/tv-series/): API de séries TV aux chemins et au JSON de TMDB v3 : une série par id avec saisons, chaînes et prochain épisode, plus classifications et plateformes.
- [API Discover](https://amodb.dev/fr/discover/): API Discover avec les mêmes filtres que TMDB v3. Listez films et séries par genre, distribution, société, mot-clé, année, note, durée et plateforme.
- [Genres et listes de référence](https://amodb.dev/fr/genres/): API de genres aux chemins TMDB v3 : identifiants de genres films et séries avec noms traduits, plus pays, langues, métiers, classifications et plateformes.
- [Séances de cinéma](https://amodb.dev/fr/showtimes/): API de séances qui renvoie salles et horaires d'un film dans un pays, ou un résumé par pays. À fusionner aux détails ou à associer à now_playing.
- [Limites de débit](https://amodb.dev/fr/rate-limits/): amodb limite chaque clé en requêtes par minute sur une fenêtre glissante de 60 secondes : 20, 40 ou 120 selon l'offre. Lisez les en-têtes et gérez le 429.

Mis à jour: 2026-10-18. Source: https://amodb.dev/fr/trending-lists/
