Знайдіть аніме за жанром 16 і мовою оригіналу ja

В amodb немає окремого ендпоінта для аніме. Аніме це фільтр на GET /3/discover/tv і GET /3/discover/movie: with_genres=16 (Animation) плюс 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=jaresults містить name, original_name, first_air_date, genre_ids
Аніме-фільмиGET /3/discover/movie з тими самими двома фільтрамиtitle, original_title, release_date
Id ключового слова animeGET /3/search/keyword?query=animeМасив results з id та name
Список серійGET /3/tv/{series_id}/season/{season_number}Один запит на сезон
Японська назваoriginal_name або original_titleОригінальне письмо, як збережено
Постерposter_pathДодайте до хоста зображень, ключ не потрібен

Почніть за 3 кроки

  1. Оберіть тариф на сторінці ціни. Усі дані доступні на кожному тарифі, відрізняється лише ліміт: 20, 40 або 120 запитів на хвилину.
  2. Створіть ключ у кабінеті акаунта.
  3. Один раз знайдіть id ключового слова, а потім викличте discover із ним та двома фільтрами.

Приклад запиту

Скрипт на Python знаходить id ключового слова anime, а потім виводить найпопулярніші японські анімаційні серіали з цим тегом. Виклик curl пропускає ключове слово й показує один сезон мовлення за вікном дат.

bashpy
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"
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_genres16Animation. Кома означає AND, тож 16,35 це анімація й комедія.
without_genresid жанруВідкидає тайтли з цим жанром.
with_original_languagejaЛише японські оригінали.
with_keywordsid ключового словаЛише тайтли з цим ключовим словом. Тайтли без тегу пропускаються.
first_air_date.gte, first_air_date.lteYYYY-MM-DDВікно мовлення для серіалів. Для фільмів використовуйте primary_release_date.gte і .lte.
sort_bypopularity.desc, vote_average.desc, first_air_date.descПорядок. Поєднуйте vote_average.desc з vote_count.gte, щоб крихітні вибірки не потрапляли на перші місця.
pageвід 1 до 500До 20 результатів на сторінці.

Теги ключових слів розставлено не для всіх тайтлів. Якщо список здається коротким, приберіть with_keywords і залиште фільтри жанру та мови, щоб охопити більше. Повний список фільтрів на сторінці discover, а id ключових слів пояснено на сторінці ключові слова.

Аніме-фільми та довгі серіали

Фільми використовують ті самі два фільтри на ендпоінті movie. Цей запит виводить високо оцінені японські анімаційні фільми, а vote_count.gte відсікає тайтли з жменькою голосів.

curl
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 серіалів.

Назви та мови

Для аніме оригінальна назва важить найбільше, тож зберігайте обидва поля.

ПолеЩо міститьПризначення
nameНазва мовою вашого запитуОсновна мітка у вашому інтерфейсі
original_nameНазва мовою оригіналу, японським письмом для японських оригіналівДодаткова мітка, корисна для фанатів, які знають японську назву
original_languagejaФільтруйте на своєму боці, якщо поєднуєте джерела
overviewЛокалізований текст, порожній, якщо перекладу немаєПовторіть запит із language=en-US, якщо порожньо

GET /3/tv/{series_id}/alternative_titles показує інші назви за країнами, якщо вони відомі. 14 підтримуваних мов перелічено на сторінці мови.

Порівняння

МожливістьСкрапінг фан-сайтів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 відсотків та без автоматичного поновлення. Безкоштовного тарифу немає. Оберіть тариф на сторінці ціни.