# Быстрый старт

> Купите тариф, создайте ключ в аккаунте и отправьте его с первым запросом к https://api.amodb.dev/3/movie/550. В ответе придет знакомый вам JSON TMDB v3. Затем соберите URL постера на img.amodb.dev из poster_path. Если вы уже используете TMDB или OMDb, смените только базовый URL и ключ.

## 1. Получите ключ

Выберите тариф на [странице цен](https://amodb.dev/ru/pricing/) и оплатите период. Затем откройте **Аккаунт**, затем **Ключи API** и создайте ключ. Ключ состоит из 32 hex-символов в нижнем регистре, как и ключ TMDB v3.

Полный ключ показывается один раз. Сохраните его в переменной окружения с именем `AMODB_KEY`, чтобы примеры на этой странице работали как написано.

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

## 2. Запросите детали фильма

Вызовите `GET /3/movie/{movie_id}`. Передайте ключ как токен Bearer или как `api_key` в запросе. Оба способа принимаются на каждом эндпоинте.

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

Ответ 200 содержит поля TMDB v3. Небольшая его часть:

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

## 3. Загрузите постер

Соедините базовый URL изображений, размер и `poster_path`. Изображениям ключ не нужен, и они остаются в кэше 30 дней.

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

Все размеры и построение URL по `/3/configuration` описаны на странице [изображения](https://amodb.dev/ru/images/).

## 4. Перенесите существующий клиент

Для клиента TMDB v3 смените базовый URL с `https://api.themoviedb.org/3` на `https://api.amodb.dev/3` и используйте свой ключ amodb. Для клиента OMDb смените его на `https://api.amodb.dev/omdb/` и передайте тот же ключ как `apikey`.

Методы записи TMDB для аккаунта, сессии, оценок и списков не предоставляются. Они возвращают HTTP 405 с `status_code` 37, поэтому клиенту только для чтения никаких других изменений не требуется.

## 5. Учитывайте лимиты и ошибки

У каждого ключа есть лимит запросов в минуту, который задает тариф. Читайте `X-RateLimit-Remaining` и после ответа 429 ждите `Retry-After` секунд. Ошибки приходят в теле TMDB с полями `success`, `status_code` и `status_message`.

Прочитайте [лимиты запросов](https://amodb.dev/ru/rate-limits/) и [ошибки](https://amodb.dev/ru/errors/), прежде чем выходить в продакшн.

## Вопросы и ответы

### Где найти мой ключ?

Войдите на amodb.dev, откройте Аккаунт, затем Ключи API и создайте ключ. Полный ключ показывается один раз, поэтому сразу скопируйте его в хранилище секретов.

### Можно ли использовать ключ в браузерном приложении?

Только через собственный сервер. Ключ в клиентском коде публичен, и любой, кто его скопирует, расходует ваш лимит запросов.

## Связанные страницы

- [Аутентификация](https://amodb.dev/ru/authentication/): Как передать ключ amodb: api_key в запросе, заголовок Authorization Bearer или apikey для вызовов OMDb. Формат ключа, хранение, ротация и ошибки 401.
- [Изображения](https://amodb.dev/ru/images/): Загружайте постеры, фоны и фото людей с img.amodb.dev по путям и размерам TMDB от w92 до original. Без ключа, кэш на 30 дней, один шаблон URL для всех.
- [Ошибки](https://amodb.dev/ru/errors/): Все ошибки amodb: HTTP-статус, status_code и сообщение TMDB, а также формат ошибки OMDb. Что означает каждая и что должен делать ваш клиент дальше.
- [Лимиты запросов](https://amodb.dev/ru/rate-limits/): amodb ограничивает ключ запросами в минуту в скользящем окне 60 секунд: 20, 40 или 120 по тарифу. Читайте заголовки лимита и обрабатывайте 429 с Retry-After.

Обновлено: 2026-10-18. Source: https://amodb.dev/ru/quickstart/
