# API аниме с фильтрами discover

> В amodb нет отдельного эндпоинта для аниме. Список аниме получают через /3/discover/tv или /3/discover/movie с жанром 16 и with_original_language=ja, а затем сужают его id ключевого слова anime из /3/search/keyword. Японский не входит в языки интерфейса, но original_name сохраняет оригинальное японское название.

## Поиск аниме по жанру 16 и языку оригинала ja

В amodb нет отдельного эндпоинта для аниме. Аниме задается фильтром на `GET /3/discover/tv` и `GET /3/discover/movie`: `with_genres=16` (анимация) плюс `with_original_language=ja`. Добавьте id ключевого слова `anime`, которое вы находите через `GET /3/search/keyword`, чтобы оставить только тайтлы с пометкой аниме.

Одно честное ограничение: японский не входит в 14 языков интерфейса, которые поддерживает amodb. Названия и описания приходят на запрошенном вами языке или на английском. Японское название остается в `original_name` для сериалов и в `original_title` для фильмов.

Что вы получаете:

- Аниме-сериалы и аниме-фильмы с одними и теми же фильтрами discover.
- Оригинальные японские названия рядом с локализованными.
- Списки сезонов и серий для каждого выбранного сериала.
- Постеры и фоны (backdrop) с `https://img.amodb.dev/t/p/{size}/{file}`.

## Какие данные вы получаете

| Что нужно                | Вызов или поле                                                        | Примечания                                                                |
| ------------------------ | --------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| Аниме-сериалы            | `GET /3/discover/tv` с `with_genres=16` и `with_original_language=ja` | `results` содержит `name`, `original_name`, `first_air_date`, `genre_ids` |
| Аниме-фильмы             | `GET /3/discover/movie` с теми же двумя фильтрами                     | `title`, `original_title`, `release_date`                                 |
| Id ключевого слова anime | `GET /3/search/keyword?query=anime`                                   | Массив `results` с `id` и `name`                                          |
| Список серий             | `GET /3/tv/{series_id}/season/{season_number}`                        | Один вызов на сезон                                                       |
| Японское название        | `original_name` или `original_title`                                  | Оригинальное написание, как хранится                                      |
| Постер                   | `poster_path`                                                         | Добавьте к хосту изображений, ключ не нужен                               |

## Начало работы в 3 шага

1. Выберите тариф на странице [цены](https://amodb.dev/ru/pricing/). Все данные доступны на каждом тарифе, различается только лимит: 20, 40 или 120 запросов в минуту.
2. Создайте ключ в личном кабинете.
3. Один раз найдите id ключевого слова, затем вызывайте discover с ним и двумя фильтрами.

## Пример запроса

Скрипт на Python находит id ключевого слова anime, затем выводит самые популярные японские анимационные сериалы с этим ключевым словом. Вызов curl обходится без ключевого слова и показывает один сезон трансляции по окну дат.

```bash
curl -s "https://api.amodb.dev/3/discover/tv?with_genres=16&with_original_language=ja&first_air_date.gte=2026-10-01&first_air_date.lte=2026-12-31&sort_by=popularity.desc" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```python
import os
import requests

BASE = "https://api.amodb.dev/3"
session = requests.Session()
session.headers["Authorization"] = f"Bearer {os.environ['AMODB_KEY']}"


def get(path, **params):
    r = session.get(BASE + path, params=params, timeout=10)
    r.raise_for_status()
    return r.json()


keywords = get("/search/keyword", query="anime")["results"]
anime_id = next((k["id"] for k in keywords if k["name"].lower() == "anime"), None)
if anime_id is None:
    raise SystemExit("anime keyword not found")

page = get(
    "/discover/tv",
    with_genres=16,
    with_original_language="ja",
    with_keywords=anime_id,
    sort_by="popularity.desc",
    language="en-US",
    page=1,
)
for show in page["results"]:
    print(show.get("first_air_date"), show["name"], "/", show["original_name"])
```

Сокращенный ответ для вызова на Python выше: 2 из 19 результатов на странице 1, массивы урезаны до 2 элементов.

```json
{
  "page": 1,
  "results": [
    {
      "adult": false,
      "backdrop_path": "/dmptwhmqxcMrCKgyvBlTt18PgDu.jpg",
      "first_air_date": "2005-04-22",
      "genre_ids": [
        10759,
        16
      ],
      "id": 65733,
      "name": "Doraemon",
      "origin_country": [
        "JP"
      ],
      "original_language": "ja",
      "original_name": "ドラえもん",
      "overview": "Robotic cat Doraemon is sent back in time from the 22nd century to protect 10-year-old...",
      "popularity": 301.2214,
      "poster_path": "/9ZN1P32SHviL3SV51qLivxycvcx.jpg",
      "vote_average": 8.089,
      "vote_count": 252
    },
    {
      "adult": false,
      "backdrop_path": "/mFKys64gbDQrFqwUheGwXQwo2JK.jpg",
      "first_air_date": "2004-10-05",
      "genre_ids": [
        10759,
        16
      ],
      "id": 30984,
      "name": "Bleach",
      "origin_country": [
        "JP"
      ],
      "original_language": "ja",
      "original_name": "BLEACH",
      "overview": "For as long as he can remember, Ichigo Kurosaki has been able to see ghosts. But when h...",
      "popularity": 190.3257,
      "poster_path": "/2EewmxXe72ogD0EaWM8gqa0ccIw.jpg",
      "vote_average": 8.4,
      "vote_count": 2295
    }
  ],
  "total_pages": 216,
  "total_results": 4302
}
```

## Фильтры, формирующие список аниме

| Фильтр                                     | Значение                                                      | Эффект                                                                                                  |
| ------------------------------------------ | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| `with_genres`                              | `16`                                                          | Анимация. Запятая означает логическое И, поэтому `16,35` дает анимацию и комедию.                       |
| `without_genres`                           | id жанра                                                      | Исключает тайтлы с этим жанром.                                                                         |
| `with_original_language`                   | `ja`                                                          | Только японские оригиналы.                                                                              |
| `with_keywords`                            | id ключевого слова                                            | Только тайтлы с этим ключевым словом. Тайтлы без метки пропускаются.                                    |
| `first_air_date.gte`, `first_air_date.lte` | `YYYY-MM-DD`                                                  | Окно трансляции для сериалов. Для фильмов используются `primary_release_date.gte` и `.lte`.             |
| `sort_by`                                  | `popularity.desc`, `vote_average.desc`, `first_air_date.desc` | Порядок. Сочетайте `vote_average.desc` с `vote_count.gte`, чтобы мелкие выборки не оказывались первыми. |
| `page`                                     | от 1 до 500                                                   | До 20 результатов на странице.                                                                          |

Разметка ключевыми словами неполная. Если список выглядит коротким, уберите `with_keywords` и оставьте фильтры по жанру и языку, чтобы охватить больше. Полный список фильтров есть на странице [discover](https://amodb.dev/ru/discover/), а id ключевых слов описаны на странице [ключевые слова](https://amodb.dev/ru/keywords/).

## Аниме-фильмы и длинные сериалы

Для фильмов действуют те же два фильтра на эндпоинте фильмов. Этот вызов выводит высоко оцененные японские анимационные фильмы, а `vote_count.gte` отсекает тайтлы с горсткой голосов.

```bash
curl -s "https://api.amodb.dev/3/discover/movie?with_genres=16&with_original_language=ja&sort_by=vote_average.desc&vote_count.gte=200" \
  -H "Authorization: Bearer $AMODB_KEY"
```

У каждого результата есть `title`, `original_title`, `release_date` и `poster_path`. Длинные сериалы в каталоге часто разбиты на несколько сезонов. `GET /3/tv/{series_id}/episode_groups` перечисляет другие порядки серий с названиями и числом серий, где они известны, но сами группы amodb не отдает, а `number_of_episodes` у сериала дает общее число. Вызовы сезонов описаны на странице [API сериалов](https://amodb.dev/ru/tv-show-api/).

## Названия и языки

Для аниме оригинальное название важнее всего, поэтому храните оба поля.

| Поле                | Что содержит                                                               | Применение                                                               |
| ------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| `name`              | Название на запрошенном языке                                              | Основная подпись в вашем интерфейсе                                      |
| `original_name`     | Название на языке оригинала, японская письменность для японских оригиналов | Дополнительная подпись, полезна фанатам, которые знают японское название |
| `original_language` | `ja`                                                                       | Фильтруйте на своей стороне, если смешиваете источники                   |
| `overview`          | Локализованный текст, пустой при отсутствии перевода                       | При пустом значении повторите запрос с `language=en-US`                  |

`GET /3/tv/{series_id}/alternative_titles` перечисляет другие названия по странам, где они известны. 14 поддерживаемых языков перечислены на странице [языки](https://amodb.dev/ru/languages/).

## Сравнение

| Возможность                 | Парсинг фан-сайтов      | API базы только по аниме                      | amodb                                                         |
| --------------------------- | ----------------------- | --------------------------------------------- | ------------------------------------------------------------- |
| Охват                       | Все, что покрывает сайт | Только аниме, глубину смотрите в документации | Фильмы и сериалы в одном каталоге, аниме выбирается фильтрами |
| Выбор аниме                 | Категории сайта         | Смотрите документацию                         | Жанр 16, `with_original_language=ja`, ключевое слово anime    |
| Название на языке оригинала | По-разному              | Смотрите документацию                         | `original_name` и `original_title`                            |
| Списки серий                | Разбор страниц          | Смотрите документацию                         | Вызов сезона с массивом `episodes`                            |
| Японский язык интерфейса    | Зависит от сайта        | Смотрите документацию                         | Не поддерживается, только оригинальные названия               |
| Условия доступа             | Условия каждого сайта   | Бесплатные и платные тарифы различаются       | Платно, предоплата, без бесплатного тарифа                    |

## Цены

Список аниме собирается из нескольких вызовов discover, а результаты discover хранятся в edge-кэше 30 минут, поэтому 20 запросов в минуту хватает многим приложениям. Тарифы рассчитаны на 20, 40 или 120 запросов в минуту с одними и теми же данными. Оплатите 1, 3, 6, 12 или 24 месяца со скидкой 0, 10, 20, 30 и 40 процентов, автоматического продления нет. Бесплатного тарифа нет. Выберите тариф на странице [цены](https://amodb.dev/ru/pricing/).

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

### Есть ли в amodb отдельный эндпоинт для аниме?

Нет. Аниме задается фильтром на обычных эндпоинтах discover: with_genres=16 для анимации и with_original_language=ja для японских оригиналов. Добавьте id ключевого слова anime, чтобы список получился точнее.

### Можно ли получить японские названия и описания?

Японские оригиналы сохраняют японское название в original_name для сериалов и в original_title для фильмов. Японский не входит в 14 поддерживаемых языков интерфейса, поэтому name и overview следуют вашему языковому тегу или английскому.

### Как найти id ключевого слова anime?

Вызовите /3/search/keyword?query=anime и прочитайте id результата с названием anime. Передайте его как with_keywords в discover. Сохраните id после первого поиска, потому что поиск по ключевым словам кэшируется только на 10 минут.

### Возвращает ли жанр 16 только аниме?

Нет. Жанр 16 означает анимацию, в нее входят и мультфильмы из других стран. Добавление with_original_language=ja убирает большинство из них, а ключевое слово anime сужает список еще сильнее.

### Насколько глубоко можно листать список аниме?

Страницы идут от 1 до 500, до 20 результатов на каждой, поэтому один запрос достигает примерно 10 000 результатов. Крупные списки делите на окна first_air_date.gte и first_air_date.lte. Результаты discover кэшируются на 30 минут.

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

- [Discover API](https://amodb.dev/ru/discover/): Discover API с фильтрами TMDB v3. Фильмы и сериалы по жанру, актеру, студии, ключевому слову, году, рейтингу, длительности и провайдеру, с сортировкой.
- [API ключевых слов](https://amodb.dev/ru/keywords/): API ключевых слов фильмов с путями TMDB v3: теги сюжета фильма или сериала, поиск ключевого слова, его фильмы и объединение ID через discover with_keywords.
- [Жанры и справочники](https://amodb.dev/ru/genres/): API списка жанров с путями TMDB v3: ID жанров фильмов и сериалов с названиями, а также списки стран, языков, должностей, рейтингов и провайдеров.
- [Языки](https://amodb.dev/ru/languages/): amodb отдает названия, описания и имена на 14 языках. Передайте в language тег в стиле TMDB, например ru-RU или pt-BR; другие теги откатываются на английский.
- [API сериалов: сериалы, сезоны и серии](https://amodb.dev/ru/tv-show-api/): API сериалов со статусом, телесетями, сезонами, сериями и полем next_episode_to_air. JSON формата TMDB v3 на 14 языках, тарифы от 20 запросов в минуту.
- [Быстрый старт](https://amodb.dev/ru/quickstart/): Первый вызов amodb: получите ключ, запросите детали фильма через curl, JavaScript, Python, PHP или Go и загрузите постер с img.amodb.dev. Меньше 2 минут.

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