# API de films pour la recherche, les détails et les notes

> amodb est une API de films payante sur https://api.amodb.dev/3, avec les mêmes chemins et le même JSON que TMDB v3. Cherchez un titre avec /search/movie, puis lisez le film avec append_to_response pour obtenir distribution, bandes-annonces et notes en une requête. Les réponses existent en 14 langues, dès 20 requêtes par minute.

## Une API de films qui parle TMDB v3 et OMDb

amodb est une API de films indépendante. Elle parle le même protocole que TMDB v3 et OMDb, donc un client écrit pour l'un ou l'autre fonctionne après le changement de l'URL de base en `https://api.amodb.dev/3` (ou `https://api.amodb.dev/omdb/` pour les appels de style OMDb). Vous trouvez un film avec `/search/movie`, puis vous le lisez avec `/movie/{movie_id}` et `append_to_response`.

Ce que vous obtenez :

- Du JSON au format TMDB v3, avec les mêmes chemins et les mêmes paramètres de requête.
- Des titres et des résumés en 14 langues, choisies avec `language`.
- La distribution, l'équipe, les bandes-annonces, les mots-clés, les images et les dates de sortie via `append_to_response`.
- Les notes d'IMDb, Kinopoisk, Metacritic, Rotten Tomatoes et TMDB quand elles sont connues.
- Des affiches depuis `https://img.amodb.dev/t/p/{size}/{file}`, sans clé.

## Les données obtenues

| Besoin                    | Appel                        | Remarques                                                                                                              |
| ------------------------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| Trouver un film par titre | `GET /3/search/movie?query=` | Paginé, jusqu'à 20 résultats par page, cache de périphérie 10 minutes. Voir [recherche](https://amodb.dev/fr/search/). |
| La fiche de base          | `GET /3/movie/{movie_id}`    | Titres, résumé, durée, genres, date de sortie. Voir [films](https://amodb.dev/fr/movies/).                             |
| Distribution et équipe    | `append_to_response=credits` | Les champs sont décrits sur [crédits](https://amodb.dev/fr/credits/).                                                  |
| Bandes-annonces           | `append_to_response=videos`  | Renvoie le tableau `results` avec `key`, `site` et `type`.                                                             |
| Notes                     | `append_to_response=ratings` | Cinq sources, chacune `{ value, votes }` ou null. Voir [notes](https://amodb.dev/fr/ratings/).                         |
| Une réponse de style OMDb | `GET /omdb/?t=Inception`     | Mêmes champs de corps qu'OMDb. Voir [point de terminaison OMDb](https://amodb.dev/fr/omdb-endpoint/).                  |

## Démarrer en 3 étapes

1. Choisissez une offre sur les [tarifs](https://amodb.dev/fr/pricing/). Les offres ne diffèrent que par le débit : 20, 40 ou 120 requêtes par minute.
2. Créez une clé dans le tableau de bord de votre compte. Une clé fait 32 caractères hexadécimaux en minuscules.
3. Appelez le point de terminaison avec la clé dans le paramètre `api_key` ou dans un en-tête `Authorization: Bearer`. Voir [authentification](https://amodb.dev/fr/authentication/).

## Exemple de requête

L'exemple trouve Inception par son titre, prend le premier résultat, puis lit le film avec sa distribution, ses bandes-annonces et ses notes en un appel de plus. Cela fait deux requêtes en tout.

```bash
# 1. find the id
curl -s "https://api.amodb.dev/3/search/movie?query=inception&language=en-US" \
  -H "Authorization: Bearer $AMODB_KEY"

# 2. read the movie with extras
curl -s "https://api.amodb.dev/3/movie/27205?language=en-US&append_to_response=credits,videos,ratings" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```js
const base = 'https://api.amodb.dev/3';
const headers = { Authorization: `Bearer ${process.env.AMODB_KEY}` };

async function get(path, params) {
  const res = await fetch(`${base}${path}?${new URLSearchParams(params)}`, { headers });
  if (res.status === 429) {
    throw new Error(`Over the limit, retry in ${res.headers.get('Retry-After')} s`);
  }
  if (!res.ok) throw new Error(`amodb returned ${res.status}`);
  return res.json();
}

const found = await get('/search/movie', { query: 'inception', language: 'en-US' });
if (!found.results.length) throw new Error('No match');

const movie = await get(`/movie/${found.results[0].id}`, {
  language: 'en-US',
  append_to_response: 'credits,videos,ratings',
});
const director = movie.credits.crew.find((c) => c.job === 'Director');
console.log(movie.title, movie.release_date, movie.runtime, director?.name);
console.log('IMDb', movie.ratings.imdb?.value);
```

La réponse abrégée. Seuls quelques champs de la fiche du film sont conservés, `credits` est réduit à un membre de la distribution et au réalisateur, et le bloc `videos` est omis.

```json
{
  "genres": [
    {
      "id": 12,
      "name": "Adventure"
    },
    {
      "id": 28,
      "name": "Action"
    },
    {
      "id": 80,
      "name": "Crime"
    }
  ],
  "id": 27205,
  "imdb_id": "tt1375666",
  "poster_path": "/xlaY2zyzMfkhk0HSC5VUwzoZPU1.jpg",
  "release_date": "2010-07-15",
  "runtime": 148,
  "title": "Inception",
  "credits": {
    "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
      }
    ],
    "crew": [
      {
        "adult": false,
        "gender": 2,
        "id": 525,
        "known_for_department": "Directing",
        "name": "Christopher Nolan",
        "original_name": "Christopher Nolan",
        "popularity": 8.578,
        "profile_path": "/xuAIuYSmsUzKlUMBFGVZaWsY3DZ.jpg",
        "credit_id": "5e83ac2ee33f830018359a00",
        "department": "Directing",
        "job": "Director"
      }
    ]
  },
  "ratings": {
    "imdb": {
      "value": 8.8,
      "votes": 2877173
    },
    "kinopoisk": {
      "value": 8.7,
      "votes": null
    },
    "metacritic": {
      "value": 74,
      "votes": null
    },
    "rotten_tomatoes": {
      "value": 86,
      "votes": null
    },
    "tmdb": {
      "value": 8.373,
      "votes": 40457
    }
  }
}
```

## Façons de trouver un film

Choisissez l'appel qui correspond à ce que vous avez déjà.

| Vous partez de                               | Appel                                           | Résultat                                                            |
| -------------------------------------------- | ----------------------------------------------- | ------------------------------------------------------------------- |
| Un titre saisi par un utilisateur            | `GET /3/search/movie?query=`                    | Tableau `results` avec `id`, `title`, `release_date`, `poster_path` |
| Un identifiant IMDb comme `tt0133093`        | `GET /3/find/tt0133093?external_source=imdb_id` | Tableau `movie_results`                                             |
| Un identifiant numérique de film comme `603` | `GET /3/movie/603`                              | La fiche complète                                                   |
| Un client OMDb existant                      | `GET /omdb/?i=tt0133093`                        | Corps OMDb avec `Title`, `Year`, `Ratings`                          |

Stockez les deux identifiants. L'`id` numérique est la clé de tous les autres appels, et `imdb_id` relie vos données à d'autres systèmes. Les règles de recherche sont sur [recherche par identifiant externe](https://amodb.dev/fr/find-by-external-id/).

## Champs vides et recherches en échec

Les vraies données de films ont des trous : écrivez le code d'affichage en en tenant compte. Une recherche sans résultat n'est pas une erreur : elle renvoie HTTP 200 avec un tableau `results` vide. Un identifiant inconnu est une erreur.

| Cas                         | Ce que vous voyez         | Que faire                                     |
| --------------------------- | ------------------------- | --------------------------------------------- |
| Aucun résultat de recherche | 200 et `"results": []`    | Afficher « aucun résultat », ne pas réessayer |
| Identifiant de film inconnu | 404 avec `status_code` 34 | Retirer l'identifiant de votre liste          |
| Clé absente ou incorrecte   | 401 avec `status_code` 7  | S'arrêter et corriger la clé                  |
| `overview` vide             | Une chaîne vide           | Redemander avec `language=en-US`              |
| Note inconnue               | `null` dans `ratings`     | Masquer ce badge                              |
| Pas de date de sortie       | `release_date` vide       | Classer le titre en dernier                   |

La liste complète des erreurs est sur [erreurs](https://amodb.dev/fr/errors/).

## Rester dans la limite de débit

Une recherche et un appel de détails coûtent chacun une requête. À 20 requêtes par minute, cela fait dix recherches de titres par minute, et à 120 requêtes par minute soixante. Une réponse servie depuis le cache de périphérie compte quand même, car la vérification de la clé et la limite de débit passent avant le cache. Gardez un cache à vous pour les recherches répétées, et lisez `X-RateLimit-Remaining` pour voir ce qu'il reste de la minute. Quand vous recevez un 429, attendez les secondes de `Retry-After`. Les limites par offre sont sur [limites de débit](https://amodb.dev/fr/rate-limits/).

## Comparaison

| Capacité                                  | Extraire les pages soi-même                | API de métadonnées avec offre gratuite             | amodb                                                          |
| ----------------------------------------- | ------------------------------------------ | -------------------------------------------------- | -------------------------------------------------------------- |
| Format de réponse                         | HTML à analyser                            | JSON                                               | JSON au format TMDB v3                                         |
| Stabilité du schéma                       | Casse quand le balisage des pages change   | Fixée par le fournisseur                           | Chemins et champs fixes, de nouveaux champs peuvent apparaître |
| Conditions d'accès                        | Les conditions de chaque site s'appliquent | Offre gratuite avec conditions d'usage, à vérifier | Payant, prépayé, sans offre gratuite                           |
| Limite de débit                           | Rien sur quoi s'appuyer                    | Fixée par le fournisseur                           | 20, 40 ou 120 requêtes par minute et par clé                   |
| Notes de plusieurs sources                | Un extracteur par site                     | Variable, voir la documentation                    | `ratings` dans le même appel, null quand inconnu               |
| Langues                                   | Ce que propose chaque page                 | Variable                                           | 14, choisies avec `language`                                   |
| Réutilisation des clients TMDB v3 et OMDb | Non                                        | Seulement s'il utilise le même protocole           | Oui, changez l'URL de base                                     |

## Tarifs

L'accès est prépayé pour 1, 3, 6, 12 ou 24 mois, avec 0, 10, 20, 30 et 40 pour cent de réduction sur les périodes plus longues. Il n'y a ni renouvellement automatique ni offre gratuite. Chaque offre donne accès à toutes les données, et les offres ne diffèrent que par le débit : 20, 40 ou 120 requêtes par minute. Choisissez-en une sur les [tarifs](https://amodb.dev/fr/pricing/) et faites votre premier appel en quelques minutes.

## Questions et réponses

### Cette API de films est-elle compatible avec TMDB ?

Oui pour les points de terminaison de lecture dont une application de films a besoin. Chemins, paramètres de requête et JSON correspondent à TMDB v3 sur https://api.amodb.dev/3 : vous changez l'URL de base et utilisez votre clé amodb. Les méthodes d'écriture de compte, de session, de notation et de liste renvoient 405 avec status_code 37. Les flux de changements, aggregate_credits et les recherches de crédit et de critique renvoient 404.

### Puis-je chercher un film par identifiant IMDb ?

Oui. Appelez /3/find/tt0133093?external_source=imdb_id et lisez movie_results, ou utilisez le point de terminaison de style OMDb sur /omdb/?i=tt0133093. Les deux acceptent la même clé que les appels de style TMDB.

### Combien de requêtes faut-il pour une page de film ?

Deux au plus : une recherche pour obtenir l'identifiant, puis un appel /movie/{id} avec append_to_response=credits,videos,ratings. Si vous stockez déjà l'identifiant, une seule requête suffit.

### Quelles langues l'API de films renvoie-t-elle ?

Quatorze : anglais, russe, ukrainien, biélorusse, chinois, portugais, bulgare, hébreu, tchèque, roumain, français, polonais, italien et espagnol. Passez une balise TMDB comme pt-BR dans language. Toute autre balise se replie sur l'anglais.

### Y a-t-il une offre gratuite ou un essai ?

Non. L'accès est prépayé pour 1, 3, 6, 12 ou 24 mois, avec des réductions de 0, 10, 20, 30 et 40 pour cent. Il n'y a pas de renouvellement automatique. Les offres à 20, 40 et 120 requêtes par minute sont sur la page des tarifs.

## 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 de recherche](https://amodb.dev/fr/search/): API de recherche aux chemins et au JSON de TMDB v3 : films, séries, personnes, collections, sociétés et mots-clés par texte, filtres d'année et pagination.
- [Notes des films et séries](https://amodb.dev/fr/ratings/): API de notes de films : scores IMDb, Kinopoisk, Metacritic, Rotten Tomatoes et TMDB d'un titre en un appel, avec null pour toute source inconnue.
- [Recherche par identifiant externe](https://amodb.dev/fr/find-by-external-id/): Retrouvez un film, une série ou une personne par id IMDb, TVDB, Wikidata ou Kinopoisk avec find de TMDB, puis lisez ids externes et faits Wikidata.
- [Démarrage rapide](https://amodb.dev/fr/quickstart/): Faites votre premier appel amodb : obtenez une clé, demandez un film en curl, JavaScript, Python, PHP ou Go, puis chargez l'affiche. En moins de 2 minutes.
- [Alternative à l'API TMDB](https://amodb.dev/fr/tmdb-api-alternative/): Besoin d'une alternative à l'API TMDB ? Comparez conditions, limites et langues, puis passez à une API payante qui garde la plupart des chemins TMDB v3.

Mis à jour: 2026-10-18. Source: https://amodb.dev/fr/movie-api/
