# API за филми за търсене, детайли и рейтинги

> Платеното API за филми amodb работи на адрес https://api.amodb.dev/3 със същите пътища и JSON като TMDB v3. Намерете заглавие през /search/movie, после прочетете филма с append_to_response и вземете актьори, трейлъри и рейтинги с една заявка. Отговорите са на 14 езика, от 20 заявки в минута.

## API за филми, което говори протокола на TMDB v3 и OMDb

amodb е независимо API за филми. То работи със същия протокол като TMDB v3 и OMDb, затова клиент, написан за някое от двете, работи, след като смените базовия URL адрес на `https://api.amodb.dev/3` (или на `https://api.amodb.dev/omdb/` за извикванията в стил OMDb). Филмът се намира през `/search/movie`, после се чете през `/movie/{movie_id}` и `append_to_response`.

Какво получавате:

- JSON във формата на TMDB v3, със същите пътища и параметри на заявката.
- Заглавия и описания на 14 езика, избират се с `language`.
- Актьорски състав, екип, трейлъри, ключови думи, изображения и дати на излизане чрез `append_to_response`.
- Рейтинги от IMDb, Kinopoisk, Metacritic, Rotten Tomatoes и TMDB, когато са известни.
- Постери от `https://img.amodb.dev/t/p/{size}/{file}`, без ключ.

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

| От какво имате нужда         | Извикване                    | Бележки                                                                                                       |
| ---------------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------- |
| Да намерите филм по заглавие | `GET /3/search/movie?query=` | Странициране, до 20 резултата на страница, edge кеш 10 минути. Вижте [търсене](https://amodb.dev/bg/search/). |
| Основният запис              | `GET /3/movie/{movie_id}`    | Заглавия, описание, продължителност, жанрове, дата на излизане. Вижте [филми](https://amodb.dev/bg/movies/).  |
| Актьори и екип               | `append_to_response=credits` | Полетата са описани на страницата [участници](https://amodb.dev/bg/credits/).                                 |
| Трейлъри                     | `append_to_response=videos`  | Връща масива `results` с `key`, `site` и `type`.                                                              |
| Оценки                       | `append_to_response=ratings` | Пет източника, всеки във вида `{ value, votes }` или null. Вижте [рейтинги](https://amodb.dev/bg/ratings/).   |
| Отговор в стил OMDb          | `GET /omdb/?t=Inception`     | Същите полета като в OMDb. Вижте [ендпойнт OMDb](https://amodb.dev/bg/omdb-endpoint/).                        |

## Започнете в 3 стъпки

1. Изберете тарифен план на страницата с [цените](https://amodb.dev/bg/pricing/). Плановете се различават само по лимита: 20, 40 или 120 заявки в минута.
2. Създайте ключ в личния си профил. Ключът е 32 шестнайсетични символа с малки букви.
3. Извикайте ендпойнта, като подадете ключа в параметъра `api_key` или в заглавката `Authorization: Bearer`. Вижте [удостоверяване](https://amodb.dev/bg/authentication/).

## Пример със заявка

Примерът намира Inception по заглавие, взема първия резултат и с още едно извикване чете филма с актьори, трейлъри и рейтинги. Това са общо две заявки.

```bash
# 1. find the id
curl -s "https://api.amodb.dev/3/search/movie?query=inception&language=en-US" \
  -H "Authorization: Bearer $AMODB_KEY"

# 2. read the movie with extras
curl -s "https://api.amodb.dev/3/movie/27205?language=en-US&append_to_response=credits,videos,ratings" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```js
const base = 'https://api.amodb.dev/3';
const headers = { Authorization: `Bearer ${process.env.AMODB_KEY}` };

async function get(path, params) {
  const res = await fetch(`${base}${path}?${new URLSearchParams(params)}`, { headers });
  if (res.status === 429) {
    throw new Error(`Over the limit, retry in ${res.headers.get('Retry-After')} s`);
  }
  if (!res.ok) throw new Error(`amodb returned ${res.status}`);
  return res.json();
}

const found = await get('/search/movie', { query: 'inception', language: 'en-US' });
if (!found.results.length) throw new Error('No match');

const movie = await get(`/movie/${found.results[0].id}`, {
  language: 'en-US',
  append_to_response: 'credits,videos,ratings',
});
const director = movie.credits.crew.find((c) => c.job === 'Director');
console.log(movie.title, movie.release_date, movie.runtime, director?.name);
console.log('IMDb', movie.ratings.imdb?.value);
```

Съкратеният отговор. От записа на филма са оставени само част от полетата, `credits` е съкратен до един актьор и режисьора, а блокът `videos` е пропуснат.

```json
{
  "genres": [
    {
      "id": 12,
      "name": "Adventure"
    },
    {
      "id": 28,
      "name": "Action"
    },
    {
      "id": 80,
      "name": "Crime"
    }
  ],
  "id": 27205,
  "imdb_id": "tt1375666",
  "poster_path": "/xlaY2zyzMfkhk0HSC5VUwzoZPU1.jpg",
  "release_date": "2010-07-15",
  "runtime": 148,
  "title": "Inception",
  "credits": {
    "cast": [
      {
        "adult": false,
        "gender": 2,
        "id": 6193,
        "known_for_department": "Acting",
        "name": "Leonardo DiCaprio",
        "original_name": "Leonardo DiCaprio",
        "popularity": 9.3213,
        "profile_path": "/wo2hJpn04vbtmh0B9utCFdsQhxM.jpg",
        "character": "Dom Cobb",
        "credit_id": "52fe4534c3a368484e04de03",
        "order": 0
      }
    ],
    "crew": [
      {
        "adult": false,
        "gender": 2,
        "id": 525,
        "known_for_department": "Directing",
        "name": "Christopher Nolan",
        "original_name": "Christopher Nolan",
        "popularity": 8.578,
        "profile_path": "/xuAIuYSmsUzKlUMBFGVZaWsY3DZ.jpg",
        "credit_id": "5e83ac2ee33f830018359a00",
        "department": "Directing",
        "job": "Director"
      }
    ]
  },
  "ratings": {
    "imdb": {
      "value": 8.8,
      "votes": 2877173
    },
    "kinopoisk": {
      "value": 8.7,
      "votes": null
    },
    "metacritic": {
      "value": 74,
      "votes": null
    },
    "rotten_tomatoes": {
      "value": 86,
      "votes": null
    },
    "tmdb": {
      "value": 8.373,
      "votes": 40457
    }
  }
}
```

## Начини да намерите филм

Изберете извикването, което отговаря на това, което вече имате.

| С какво започвате                 | Извикване                                       | Резултат                                                       |
| --------------------------------- | ----------------------------------------------- | -------------------------------------------------------------- |
| Заглавие, въведено от потребител  | `GET /3/search/movie?query=`                    | Масив `results` с `id`, `title`, `release_date`, `poster_path` |
| IMDb id, например `tt0133093`     | `GET /3/find/tt0133093?external_source=imdb_id` | Масив `movie_results`                                          |
| Числов id на филм, например `603` | `GET /3/movie/603`                              | Пълният запис                                                  |
| Съществуващ клиент за OMDb        | `GET /omdb/?i=tt0133093`                        | Отговор на OMDb с `Title`, `Year`, `Ratings`                   |

Пазете и двата id. Числовият `id` е ключът за всички останали извиквания, а `imdb_id` свързва вашите данни с други системи. Правилата за търсене са на страницата [търсене по външен идентификатор](https://amodb.dev/bg/find-by-external-id/).

## Празни полета и неуспешни търсения

Реалните данни за филми имат пропуски, затова предвидете ги в кода за показване. Търсене без резултат не е грешка: връща HTTP 200 и празен масив `results`. Непознат id е грешка.

| Случай                   | Какво виждате            | Какво да направите                                 |
| ------------------------ | ------------------------ | -------------------------------------------------- |
| Търсенето не намира нищо | 200 и `"results": []`    | Покажете „няма съвпадение“, не повтаряйте заявката |
| Непознат id на филм      | 404 със `status_code` 34 | Махнете id от списъка си                           |
| Липсващ или грешен ключ  | 401 със `status_code` 7  | Спрете и поправете ключа                           |
| Празно `overview`        | Празен низ               | Повторете заявката с `language=en-US`              |
| Неизвестна оценка        | `null` в `ratings`       | Скрийте тази значка                                |
| Няма дата на излизане    | Празно `release_date`    | Подредете заглавието последно                      |

Пълният списък с грешки е на страницата [грешки](https://amodb.dev/bg/errors/).

## Как да останете в рамките на лимита

Търсенето и извикването на детайли струват по една заявка. При 20 заявки в минута това са десет търсения на заглавие в минута, а при 120 заявки в минута са шейсет. Попадение в edge кеша също се брои, защото проверката на ключа и лимитът на заявките се изпълняват преди кеша. Пазете собствен кеш за повтарящи се търсения и четете `X-RateLimit-Remaining`, за да видите колко заявки остават в текущата минута. При 429 изчакайте толкова секунди, колкото сочи `Retry-After`. Лимитите по планове са на страницата [лимити на заявките](https://amodb.dev/bg/rate-limits/).

## Как се сравнява

| Възможност                                     | Сами да обработвате страници                        | API за метаданни с безплатен план                  | amodb                                                    |
| ---------------------------------------------- | --------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------------- |
| Формат на отговора                             | HTML, който трябва да разбирате                     | JSON                                               | JSON във формата на TMDB v3                              |
| Стабилност на схемата                          | Чупи се, когато се промени разметката на страницата | Определя се от доставчика                          | Фиксирани пътища и полета, може да се появят нови полета |
| Условия за достъп                              | Важат условията на всеки сайт                       | Безплатен план с условия за ползване, проверете ги | Платен, предплатен, без безплатен план                   |
| Лимит на заявките                              | Нищо, на което можете да разчитате                  | Определя се от доставчика                          | 20, 40 или 120 заявки в минута на ключ                   |
| Рейтинги от няколко източника                  | По един скрейпър за всеки сайт                      | Различно, вижте документацията                     | `ratings` в същото извикване, null, когато е неизвестно  |
| Езици                                          | Каквото предлага всяка страница                     | Различно                                           | 14, избират се с `language`                              |
| Повторна употреба на клиенти за TMDB v3 и OMDb | Не                                                  | Само ако ползва същия протокол                     | Да, сменяте базовия URL адрес                            |

## Цени

Достъпът е предплатен за 1, 3, 6, 12 или 24 месеца, като за по-дългите периоди отстъпката е 0, 10, 20, 30 и 40 процента. Няма автоматично подновяване и няма безплатен план. Всички планове дават достъп до всички данни и се различават само по лимита: 20, 40 или 120 заявки в минута. Изберете план на страницата с [цените](https://amodb.dev/bg/pricing/) и направете първото си извикване след броени минути.

## Въпроси и отговори

### Съвместимо ли е това API за филми с TMDB?

Да, за ендпойнтите за четене, от които има нужда едно приложение за филми. Пътищата, параметрите на заявката и JSON съвпадат с TMDB v3 на https://api.amodb.dev/3, така че сменяте базовия URL адрес и ползвате своя ключ за amodb. Методите за запис за account, session, rating и list връщат 405 със status_code 37. Потоците changes, както и заявките aggregate_credits, credit и review връщат 404.

### Мога ли да търся филм по IMDb id?

Да. Извикайте /3/find/tt0133093?external_source=imdb_id и прочетете movie_results или ползвайте ендпойнта в стил OMDb на /omdb/?i=tt0133093. И двете извиквания приемат същия ключ като извикванията в стил TMDB.

### Колко заявки са нужни за една страница на филм?

Най-много две: едно търсене, за да получите id, и едно извикване на /movie/{id} с append_to_response=credits,videos,ratings. Ако вече пазите id, стига една заявка.

### На кои езици връща отговори API за филми?

На четиринайсет: английски, руски, украински, беларуски, китайски, португалски, български, иврит, чешки, румънски, френски, полски, италиански и испански. Подайте в language таг на TMDB, например pt-BR. Всеки друг таг води до английски.

### Има ли безплатен план или пробен период?

Не. Достъпът е предплатен за 1, 3, 6, 12 или 24 месеца с отстъпки 0, 10, 20, 30 и 40 процента. Няма автоматично подновяване. Плановете за 20, 40 и 120 заявки в минута са на страницата с цените.

## Свързани страници

- [API за детайли на филм](https://amodb.dev/bg/movies/): API за детайли на филм със същите пътища и JSON като TMDB v3. Един филм по id, а актьори, рейтинги и настроения през append_to_response, на 14 езика.
- [API за търсене](https://amodb.dev/bg/search/): API за търсене със същите пътища и JSON като TMDB v3. Намира филми, сериали, личности, колекции, компании и ключови думи по текст, с филтър по година.
- [Рейтинги на филми и сериали](https://amodb.dev/bg/ratings/): API за рейтинги на филми връща оценки от IMDb, Kinopoisk, Metacritic, Rotten Tomatoes и TMDB за заглавие с едно извикване, с null за неизвестен източник.
- [Търсене по външен идентификатор](https://amodb.dev/bg/find-by-external-id/): Търсете филм, сериал или личност по IMDb, TVDB, Wikidata или Kinopoisk id с ендпойнта find на TMDB и четете външни id и факти от Wikidata за заглавие.
- [Бърз старт](https://amodb.dev/bg/quickstart/): Първата ви заявка към amodb: вземете ключ, поискайте детайли за филм с curl, JavaScript, Python, PHP или Go и заредете постера от img.amodb.dev. До 2 минути.
- [Алтернатива на TMDB API](https://amodb.dev/bg/tmdb-api-alternative/): Търсите алтернатива на TMDB API? Сравнете условия, лимити, езици и рейтинги, после минете към платено API с пътищата за четене на TMDB v3 и JSON.

Обновено: 2026-10-18. Source: https://amodb.dev/bg/movie-api/
