Аутентификация

Каждый запрос к amodb содержит один ключ: 32 hex-символа в нижнем регистре. Передавайте его как api_key в запросе или заголовком Authorization: Bearer для вызовов в стиле TMDB и как apikey для вызовов в стиле OMDb. Изображениям ключ не нужен. Неверный ключ дает 401 со status_code 7, приостановленный ключ дает 401 со status_code 10.

Обновлено Открыть в Markdown

Формат ключа

Ключ состоит из 32 hex-символов в нижнем регистре, например 0123456789abcdef0123456789abcdef. Он имеет ту же форму, что и ключ TMDB v3, поэтому поля и валидаторы, написанные для ключей TMDB, его принимают.

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

Вызовы в стиле TMDB

Передавайте ключ одним из двух способов. Оба работают на каждом эндпоинте под https://api.amodb.dev/3.

СпособПример
Параметр запроса?api_key=YOUR_KEY
ЗаголовокAuthorization: Bearer YOUR_KEY
bashjspyphpgo
curl "https://api.amodb.dev/3/configuration" \
  -H "Authorization: Bearer $AMODB_KEY"
const res = await fetch("https://api.amodb.dev/3/configuration", {
  headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` },
});
import os
import requests

res = requests.get(
    "https://api.amodb.dev/3/configuration",
    headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
    timeout=10,
)
<?php
$url = "https://api.amodb.dev/3/configuration?api_key=" . urlencode(getenv("AMODB_KEY"));
$config = json_decode(file_get_contents($url), true);
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.

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

Изображениям ключ не нужен

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

Храните ключи на сервере

Ключ в браузерном бандле, мобильном приложении или публичном репозитории становится публичным. Любой, кто его скопирует, расходует ваш лимит запросов. Вызывайте amodb со своего сервера, из serverless-функции или на этапе сборки, а клиентам передавайте только данные.

  • Храните ключ в переменной окружения или в менеджере секретов.
  • Используйте один ключ на приложение или окружение, с названием вроде production или staging.
  • Удаляйте ключ в тот же момент, когда он утек. Вызовы с ним сразу перестают работать.

Ошибки

HTTPstatus_codeЗначение
4017Ключ отсутствует, имеет неверный формат или неизвестен.
40110Ключ приостановлен. Напишите на support@amodb.dev.
40236Срок вашего тарифа истек. Оплатите новый период на странице цен.

Все коды описаны на странице ошибки.

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

Безопаснее ли заголовок Bearer, чем api_key в запросе?

Да, немного. Строки запроса попадают в логи сервера и историю браузера чаще, чем заголовки. Оба способа проходят одну и ту же проверку, поэтому используйте заголовок там, где это позволяет ваш клиент.

Сколько ключей можно создать?

До 10 активных ключей на аккаунт. Все они делят лимит запросов вашего тарифа, поэтому второй ключ не добавляет пропускной способности.

Что будет с моими ключами при смене тарифа?

Делать ничего не нужно. Каждый активный ключ получает новый лимит в течение минуты после платежа.