# Автентифікація

> Кожен запит до amodb містить один ключ: 32 шістнадцяткові символи нижнього регістру. Надсилайте його як api_key у запиті або як заголовок Authorization: Bearer для викликів у стилі TMDB і як apikey для викликів у стилі OMDb. Для зображень ключ не потрібен. Хибний ключ повертає 401 зі status_code 7, призупинений ключ повертає 401 зі status_code 10.

## Формат ключа

Ключ складається з 32 шістнадцяткових символів нижнього регістру, наприклад `0123456789abcdef0123456789abcdef`. Він має ту саму форму, що й ключ TMDB v3, тож поля та валідатори, створені для ключів TMDB, його приймають.

amodb зберігає лише хеш SHA-256 кожного ключа. Повний ключ показується один раз, коли ви його створюєте. Якщо ви його втратили, видаліть його й створіть новий.

## Виклики у стилі TMDB

Надішліть ключ одним із двох способів. Обидва працюють на кожному ендпоінті під `https://api.amodb.dev/3`.

| Спосіб          | Приклад                          |
| --------------- | -------------------------------- |
| Параметр запиту | `?api_key=YOUR_KEY`              |
| Заголовок       | `Authorization: Bearer YOUR_KEY` |

```bash
curl "https://api.amodb.dev/3/configuration" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```js
const res = await fetch("https://api.amodb.dev/3/configuration", {
  headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` },
});
```

```python
import os
import requests

res = requests.get(
    "https://api.amodb.dev/3/configuration",
    headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
    timeout=10,
)
```

```php
<?php
$url = "https://api.amodb.dev/3/configuration?api_key=" . urlencode(getenv("AMODB_KEY"));
$config = json_decode(file_get_contents($url), true);
```

```go
req, _ := http.NewRequest("GET", "https://api.amodb.dev/3/configuration", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("AMODB_KEY"))
res, err := http.DefaultClient.Do(req)
```

## Виклики у стилі OMDb

Ендпоінт, сумісний з OMDb, приймає ключ як `apikey`, так само як OMDb. Це той самий ключ, який ви використовуєте для викликів у стилі TMDB.

```bash
curl "https://api.amodb.dev/omdb/?t=Inception&y=2010&apikey=$AMODB_KEY"
```

## Зображення не потребують ключа

URL зображень на `img.amodb.dev` публічні. Не додавайте до них свій ключ: тег `<img>` відкрив би його кожному відвідувачу.

## Зберігайте ключі на сервері

Ключ у збірці для браузера, мобільному застосунку чи публічному репозиторії стає публічним. Будь-хто, хто його скопіює, витрачає ваш ліміт запитів. Викликайте amodb зі свого сервера, безсерверної функції або кроку збірки й передавайте клієнтам лише дані.

- Зберігайте ключ у змінній середовища або менеджері секретів.
- Використовуйте один ключ на застосунок чи середовище, з назвою на кшталт `production` або `staging`.
- Видаляйте ключ у ту мить, коли він витік. Виклики з ним одразу перестають працювати.

## Помилки

| HTTP | status_code | Значення                                                                    |
| ---- | ----------- | --------------------------------------------------------------------------- |
| 401  | 7           | Ключ відсутній, має хибний формат або невідомий.                            |
| 401  | 10          | Ключ призупинено. Напишіть на <support@amodb.dev>.                          |
| 402  | 36          | Термін дії вашого тарифу закінчився. Сплатіть новий період на сторінці цін. |

Усі коди дивіться на сторінці [помилки](https://amodb.dev/uk/errors/).

## Запитання й відповіді

### Чи безпечніший заголовок Bearer, ніж api_key у запиті?

Так, трохи. Рядки запитів потрапляють у журнали серверів та історію браузера частіше, ніж заголовки. Обидва способи проходять ту саму перевірку, тож використовуйте заголовок, де це дозволяє ваш клієнт.

### Скільки ключів я можу створити?

До 10 активних ключів на акаунт. Усі вони мають спільний ліміт запитів вашого тарифу, тож другий ключ не збільшує кількість доступних запитів.

### Що станеться з моїми ключами, коли я змінюю тариф?

Нічого робити не потрібно. Кожен активний ключ отримує новий ліміт протягом хвилини після платежу.

## Пов'язані сторінки

- [Швидкий старт](https://amodb.dev/uk/quickstart/): Перший виклик amodb: отримайте ключ, запросіть деталі фільму в curl, JavaScript, Python, PHP чи Go і завантажте постер з img.amodb.dev. Менш ніж за 2 хвилини.
- [Ліміти запитів](https://amodb.dev/uk/rate-limits/): amodb обмежує кожен ключ запитами на хвилину в ковзному вікні 60 секунд: 20, 40 або 120 за тарифом. Читайте заголовки ліміту й обробляйте 429 із Retry-After.
- [Помилки](https://amodb.dev/uk/errors/): Усі помилки amodb зі статусом HTTP, status_code і повідомленням TMDB, а також форма помилки OMDb. Що означає кожна й що має робити ваш клієнт далі.
- [Політика прийнятного використання](https://amodb.dev/uk/acceptable-use/): Що можна й чого не можна з amodb: застосунки, сайти, боти й дослідження на даних, але без обміну ключами, перепродажу доступу, обходу лімітів та атак на сервіс.

Оновлено: 2026-10-18. Source: https://amodb.dev/uk/authentication/
