# Démarrage rapide

> Achetez une offre, créez une clé dans votre compte et envoyez-la avec votre première requête à https://api.amodb.dev/3/movie/550. La réponse est le JSON TMDB v3 que vous connaissez. Construisez ensuite une URL d'affiche sur img.amodb.dev à partir de poster_path. Si vous utilisez déjà TMDB ou OMDb, changez seulement l'URL de base et la clé.

## 1. Obtenir une clé

Choisissez une offre sur la [page des tarifs](https://amodb.dev/fr/pricing/) et payez une période. Ouvrez ensuite **Compte**, puis **Clés d'API**, et créez une clé. Une clé fait 32 caractères hexadécimaux en minuscules, la même forme qu'une clé TMDB v3.

La clé complète n'est affichée qu'une fois. Stockez-la dans une variable d'environnement nommée `AMODB_KEY` pour que les exemples de cette page fonctionnent tels quels.

```bash
export AMODB_KEY="0123456789abcdef0123456789abcdef"
```

## 2. Demander les détails d'un film

Appelez `GET /3/movie/{movie_id}`. Envoyez la clé comme jeton Bearer ou comme `api_key` dans la requête. Les deux sont acceptés sur tous les points de terminaison.

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

```js
const res = await fetch("https://api.amodb.dev/3/movie/550?language=en-US", {
  headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` },
});
if (!res.ok) throw new Error(`amodb ${res.status}`);
const movie = await res.json();
console.log(movie.title, movie.runtime);
```

```python
import os
import requests

res = requests.get(
    "https://api.amodb.dev/3/movie/550",
    params={"language": "en-US"},
    headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
    timeout=10,
)
res.raise_for_status()
movie = res.json()
print(movie["title"], movie["runtime"])
```

```php
<?php
$ch = curl_init("https://api.amodb.dev/3/movie/550?language=en-US");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("AMODB_KEY")],
]);
$movie = json_decode(curl_exec($ch), true);
echo $movie["title"] . " " . $movie["runtime"];
```

```go
package main

import (
	"encoding/json"
	"fmt"
	"log"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://api.amodb.dev/3/movie/550?language=en-US", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("AMODB_KEY"))

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer res.Body.Close()

	var movie struct {
		Title   string `json:"title"`
		Runtime int    `json:"runtime"`
	}
	json.NewDecoder(res.Body).Decode(&movie)
	fmt.Println(movie.Title, movie.Runtime)
}
```

Une réponse 200 contient les champs TMDB v3. Un extrait :

```json
{
  "id": 550,
  "imdb_id": "tt0137523",
  "title": "Fight Club",
  "release_date": "1999-10-15",
  "runtime": 139,
  "poster_path": "/pB8BM7pdSp6B6Ih7QZ4DrQ3PmJK.jpg"
}
```

## 3. Charger l'affiche

Assemblez l'URL de base des images, une taille et `poster_path`. Les images n'exigent aucune clé et restent en cache 30 jours.

```bash
curl -o poster.jpg "https://img.amodb.dev/t/p/w500/pB8BM7pdSp6B6Ih7QZ4DrQ3PmJK.jpg"
```

```js
const poster = `https://img.amodb.dev/t/p/w500${movie.poster_path}`;
```

```python
poster = f"https://img.amodb.dev/t/p/w500{movie['poster_path']}"
```

Voir [les images](https://amodb.dev/fr/images/) pour toutes les tailles et pour construire les URL à partir de `/3/configuration`.

## 4. Migrer un client existant

Pour un client TMDB v3, changez l'URL de base de `https://api.themoviedb.org/3` en `https://api.amodb.dev/3` et utilisez votre clé amodb. Pour un client OMDb, changez-la en `https://api.amodb.dev/omdb/` et passez la même clé comme `apikey`.

Les méthodes d'écriture de TMDB pour le compte, la session, la notation et les listes ne sont pas proposées. Elles renvoient HTTP 405 avec `status_code` 37 : un client en lecture seule n'a donc besoin d'aucun autre changement.

## 5. Gérer les limites et les erreurs

Chaque clé a un débit par minute fixé par son offre. Lisez `X-RateLimit-Remaining` et attendez les secondes de `Retry-After` après un 429. Les erreurs utilisent le corps TMDB avec `success`, `status_code` et `status_message`.

Lisez [les limites de débit](https://amodb.dev/fr/rate-limits/) et [les erreurs](https://amodb.dev/fr/errors/) avant de passer en production.

## Questions et réponses

### Où trouver ma clé ?

Connectez-vous sur amodb.dev, ouvrez Compte puis Clés d'API, et créez une clé. La clé complète n'est affichée qu'une fois : copiez-la tout de suite dans votre coffre de secrets.

### Puis-je utiliser la clé dans une application de navigateur ?

Seulement derrière votre propre serveur. Une clé dans du code côté client est publique, et quiconque la copie utilise votre débit.

## Pages liées

- [Authentification](https://amodb.dev/fr/authentication/): Comment envoyer votre clé amodb : api_key dans la requête, en-tête Authorization Bearer, ou apikey pour OMDb. Format, stockage, rotation et erreurs 401.
- [Images](https://amodb.dev/fr/images/): Chargez affiches, fonds et photos de profil depuis img.amodb.dev, avec les chemins et tailles TMDB de w92 à original. Sans clé, cache de 30 jours.
- [Erreurs](https://amodb.dev/fr/errors/): Chaque erreur amodb : statut HTTP, status_code et message TMDB, plus la forme d'erreur OMDb. Ce que chacune signifie et ce que votre client doit faire.
- [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/quickstart/
