# API за сериали

> Ендпойнтът за сериал връща един сериал по id на GET /3/tv/{series_id}: имена, описание, статус, сезони, мрежи, жанрове и указатели към последния и следващия епизод. JSON съвпада с TMDB v3, така че съществуващите клиенти се нуждаят само от нов базов URL. Добавете append_to_response, за да слеете възрастови рейтинги, участници и оценки в една заявка.

## Ендпойнт

`GET /3/tv/{series_id}`

```bash
curl "https://api.amodb.dev/3/tv/1396?language=en-US" \
  -H "Authorization: Bearer $AMODB_KEY"
```

Отговор:

```json
{
  "adult": false,
  "backdrop_path": "/ycFcYYnzVc8mWw41neszGPMyKc3.jpg",
  "created_by": [],
  "episode_run_time": [
    48,
    49
  ],
  "first_air_date": "2008-01-20",
  "genres": [
    {
      "id": 18,
      "name": "Drama"
    },
    {
      "id": 80,
      "name": "Crime"
    }
  ],
  "homepage": "",
  "id": 1396,
  "in_production": false,
  "languages": [
    "en"
  ],
  "last_air_date": "2013-09-29",
  "last_episode_to_air": {
    "air_date": "2013-09-29",
    "episode_number": 16,
    "episode_type": "standard",
    "id": 62161,
    "name": "פלינה",
    "overview": "הסדרה זוכת הפרסים מגיעה לסיום דרמתי בפרק החותם אותה.",
    "production_code": "",
    "runtime": 56,
    "season_number": 5,
    "show_id": 1396,
    "still_path": "/pA0YwyhvdDXP3BEGL2grrIhq8aM.jpg",
    "vote_average": 0,
    "vote_count": 0
  },
  "name": "Breaking Bad",
  "next_episode_to_air": null,
  "networks": [
    {
      "id": 174,
      "logo_path": "/pmvRmATOCaDykE6JrVoeYxlFHw3.png",
      "name": "AMC",
      "origin_country": "US"
    }
  ],
  "number_of_episodes": 62,
  "number_of_seasons": 5,
  "origin_country": [
    "US"
  ],
  "original_language": "en",
  "original_name": "Breaking Bad",
  "overview": "Walter White, a New Mexico chemistry teacher, is diagnosed with Stage III cancer and given a prognosis of only two years left to live. He becomes filled with a sense of fearlessness and an unrelenting desire to secure his family's financial...",
  "popularity": 268.4968,
  "poster_path": "/anFx9aTOOYqgS3v7x3R84Kz67ly.jpg",
  "production_companies": [
    {
      "id": 2605,
      "logo_path": null,
      "name": "Gran Via Productions",
      "origin_country": "US"
    },
    {
      "id": 11073,
      "logo_path": "/wHs44fktdoj6c378ZbSWfzKsM2Z.png",
      "name": "Sony Pictures Television",
      "origin_country": "US"
    },
    {
      "id": 33742,
      "logo_path": "/2jdh2sEa0R6y6uT0F7g0IgA2WO8.png",
      "name": "High Bridge Productions",
      "origin_country": "US"
    }
  ],
  "production_countries": [
    {
      "iso_3166_1": "US",
      "name": "United States of America"
    }
  ],
  "seasons": [
    {
      "air_date": "2009-02-17",
      "episode_count": 9,
      "id": 3577,
      "name": "特别篇",
      "overview": "",
      "poster_path": "/ikBSCmgG5Z4jequUUAjKpf1QG3T.jpg",
      "season_number": 0,
      "vote_average": 0
    },
    {
      "air_date": "2008-01-20",
      "episode_count": 7,
      "id": 3572,
      "name": "Season 1",
      "overview": "High school chemistry teacher Walter White's life is suddenly transformed by a dire medical diagnosis. Street-savvy former student Jesse Pinkman \"teaches\" Walter a new trade.",
      "poster_path": "/91EIXdWxmp2mHNRsSuDW3WyDJLj.jpg",
      "season_number": 1,
      "vote_average": 0
    },
    {
      "air_date": "2009-03-08",
      "episode_count": 13,
      "id": 3573,
      "name": "第 2 季",
      "overview": "贩卖冰毒的沃尔特老师在毒品交易中越陷越深，这引起了竞争对手的注意并使他在缉毒局的小舅子陷入危险中。",
      "poster_path": "/zMO024gJxKhTJfWqM0XTYd3SgKj.jpg",
      "season_number": 2,
      "vote_average": 0
    }
  ],
  "spoken_languages": [
    {
      "english_name": "English",
      "iso_639_1": "en",
      "name": "English"
    },
    {
      "english_name": "Spanish",
      "iso_639_1": "es",
      "name": "Español"
    }
  ],
  "status": "Ended",
  "tagline": "Change the equation.",
  "vote_average": 8.955,
  "vote_count": 18871
}
```

## Вземане на детайли за сериал

`GET /3/tv/{series_id}` връща основния запис на един сериал: имена, описание, статус, жанрове, мрежи, списъка със сезони и указатели към последния и следващия епизод. Id е числовото tv id на TMDB, така че сериал, който пазите като `1396`, запазва това id и тук. Id на филми и id на сериали са отделни пространства, затова винаги пазете вида медия до числото.

Примерът иска Breaking Bad на английски и в същото извикване добавя възрастовите му рейтинги и външните оценки.

```bash
curl -sSf "https://api.amodb.dev/3/tv/1396?language=en-US&append_to_response=content_ratings,ratings" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```js
const params = new URLSearchParams({ language: 'en-US', append_to_response: 'content_ratings,ratings' });
const res = await fetch(`https://api.amodb.dev/3/tv/1396?${params}`, {
  headers: { Authorization: `Bearer ${process.env.AMODB_KEY}` },
});
if (!res.ok) throw new Error(`amodb returned ${res.status}`);
const show = await res.json();
const us = show.content_ratings.results.find((r) => r.iso_3166_1 === 'US');
console.log(show.name, show.status, show.number_of_seasons, us?.rating);
```

```python
import os
import requests

r = requests.get(
    "https://api.amodb.dev/3/tv/1396",
    params={"language": "en-US", "append_to_response": "content_ratings,ratings"},
    headers={"Authorization": f"Bearer {os.environ['AMODB_KEY']}"},
    timeout=10,
)
r.raise_for_status()
show = r.json()
us = next((x for x in show["content_ratings"]["results"] if x["iso_3166_1"] == "US"), None)
print(show["name"], show["status"], show["number_of_seasons"], us and us["rating"])
```

```php
<?php
$url = 'https://api.amodb.dev/3/tv/1396?' . http_build_query([
    'language' => 'en-US',
    'append_to_response' => 'content_ratings,ratings',
]);
$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 10,
    CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('AMODB_KEY')],
]);
$body = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status !== 200) {
    throw new RuntimeException("amodb returned $status");
}
$show = json_decode($body, true);
echo $show['name'], ' ', $show['status'], ' ', $show['number_of_seasons'], PHP_EOL;
```

```go
package main

import (
	"encoding/json"
	"fmt"
	"net/http"
	"net/url"
	"os"
	"time"
)

type Show struct {
	Name             string `json:"name"`
	Status           string `json:"status"`
	NumberOfSeasons  int    `json:"number_of_seasons"`
	NumberOfEpisodes int    `json:"number_of_episodes"`
	Next             *struct {
		AirDate string `json:"air_date"`
	} `json:"next_episode_to_air"`
}

func main() {
	q := url.Values{"language": {"en-US"}}
	req, _ := http.NewRequest("GET", "https://api.amodb.dev/3/tv/1396?"+q.Encode(), nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("AMODB_KEY"))
	client := &http.Client{Timeout: 10 * time.Second}
	res, err := client.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	if res.StatusCode != http.StatusOK {
		panic(res.Status)
	}
	var s Show
	if err := json.NewDecoder(res.Body).Decode(&s); err != nil {
		panic(err)
	}
	next := "none scheduled"
	if s.Next != nil {
		next = s.Next.AirDate
	}
	fmt.Println(s.Name, s.Status, s.NumberOfSeasons, s.NumberOfEpisodes, next)
}
```

### Параметри

| Параметър            | Къде   | Задължителен  | Описание                                                                                                    |
| -------------------- | ------ | ------------- | ----------------------------------------------------------------------------------------------------------- |
| `series_id`          | път    | да            | Числов id на сериала, например `1396`.                                                                      |
| `api_key`            | заявка | един от двата | Вашият ключ. Ползвайте него или заглавката `Authorization: Bearer`.                                         |
| `language`           | заявка | не            | Таг на TMDB, например `en-US`, `uk-UA` или `es-ES`. Поддържат се 14 основни езика. По подразбиране `en-US`. |
| `append_to_response` | заявка | не            | Списък с подресурси, разделени със запетая, които да се слеят в отговора, до 20 стойности.                  |

### Полета на отговора

| Поле                                               | Тип               | Бележки                                                                                                                                   |
| -------------------------------------------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| `id`                                               | цяло число        | Id на сериала.                                                                                                                            |
| `name`, `original_name`                            | низ               | Локализирано и оригинално заглавие. Оригинални японски или корейски имена остават в `original_name`.                                      |
| `overview`, `tagline`                              | низ               | Локализиран текст, празен, когато няма превод.                                                                                            |
| `first_air_date`, `last_air_date`                  | низ или null      | `YYYY-MM-DD`.                                                                                                                             |
| `status`                                           | низ               | Жизнен цикъл, вижте таблицата по-долу.                                                                                                    |
| `in_production`                                    | булева стойност   | `true`, докато сериалът още се снима.                                                                                                     |
| `number_of_seasons`, `number_of_episodes`          | цяло число        | Общи стойности, както са записани за сериала.                                                                                             |
| `episode_run_time`                                 | масив             | Типична продължителност на епизодите в минути, може да е празен.                                                                          |
| `seasons`                                          | масив             | По едно кратко описание на сезон с `id`, `season_number`, `name`, `overview`, `episode_count`, `air_date`, `poster_path`, `vote_average`. |
| `last_episode_to_air`, `next_episode_to_air`       | обект или null    | Кратки описания на епизоди, с формата на обектите от страницата [сезони и епизоди](https://amodb.dev/bg/tv-seasons-episodes/).            |
| `networks`, `production_companies`                 | масив             | `id`, `name`, `logo_path`, `origin_country`.                                                                                              |
| `production_countries`, `spoken_languages`         | масив             | Държави с `iso_3166_1` и `name`. Езици с `english_name`, `iso_639_1` и `name`.                                                            |
| `created_by`                                       | масив             | Създатели с `id`, `name`, `profile_path` и `credit_id`. Празен при повечето сериали.                                                      |
| `genres`                                           | масив             | Обекти с `id` и `name`. Id на жанровете за сериали се различават от id на филмите.                                                        |
| `origin_country`, `original_language`, `languages` | масив, низ        | Кодове на държави и езикови кодове.                                                                                                       |
| `homepage`                                         | низ               | Официален сайт, празен, когато е неизвестен.                                                                                              |
| `poster_path`, `backdrop_path`                     | низ или null      | Добавя се към `https://img.amodb.dev/t/p/{size}`. Вижте [изображения](https://amodb.dev/bg/images-api/).                                  |
| `popularity`                                       | число             | Относителна оценка, използвана от списъка с популярни.                                                                                    |
| `vote_average`, `vote_count`                       | число, цяло число | Обобщена потребителска оценка.                                                                                                            |
| `adult`                                            | булева стойност   | Винаги `false`. Заглавия за възрастни никога не се обслужват.                                                                             |

### Примерен отговор

`GET /3/tv/1396?language=en-US&append_to_response=content_ratings,ratings`, с изрязани дълги масиви и текст:

```json
{
  "adult": false,
  "backdrop_path": "/ycFcYYnzVc8mWw41neszGPMyKc3.jpg",
  "created_by": [],
  "episode_run_time": [
    48,
    49
  ],
  "first_air_date": "2008-01-20",
  "genres": [
    {
      "id": 18,
      "name": "Drama"
    },
    {
      "id": 80,
      "name": "Crime"
    }
  ],
  "homepage": "",
  "id": 1396,
  "in_production": false,
  "languages": [
    "en"
  ],
  "last_air_date": "2013-09-29",
  "last_episode_to_air": {
    "air_date": "2013-09-29",
    "episode_number": 16,
    "episode_type": "standard",
    "id": 62161,
    "name": "פלינה",
    "overview": "הסדרה זוכת הפרסים מגיעה לסיום דרמתי בפרק החותם אותה.",
    "production_code": "",
    "runtime": 56,
    "season_number": 5,
    "show_id": 1396,
    "still_path": "/pA0YwyhvdDXP3BEGL2grrIhq8aM.jpg",
    "vote_average": 0,
    "vote_count": 0
  },
  "name": "Breaking Bad",
  "next_episode_to_air": null,
  "networks": [
    {
      "id": 174,
      "logo_path": "/pmvRmATOCaDykE6JrVoeYxlFHw3.png",
      "name": "AMC",
      "origin_country": "US"
    }
  ],
  "number_of_episodes": 62,
  "number_of_seasons": 5,
  "origin_country": [
    "US"
  ],
  "original_language": "en",
  "original_name": "Breaking Bad",
  "overview": "Walter White, a New Mexico chemistry teacher, is diagnosed with Stage III cancer and given a prognosis of o...",
  "popularity": 268.4968,
  "poster_path": "/anFx9aTOOYqgS3v7x3R84Kz67ly.jpg",
  "production_companies": [
    {
      "id": 2605,
      "logo_path": null,
      "name": "Gran Via Productions",
      "origin_country": "US"
    },
    {
      "id": 11073,
      "logo_path": "/wHs44fktdoj6c378ZbSWfzKsM2Z.png",
      "name": "Sony Pictures Television",
      "origin_country": "US"
    }
  ],
  "production_countries": [
    {
      "iso_3166_1": "US",
      "name": "United States of America"
    }
  ],
  "seasons": [
    {
      "air_date": "2009-02-17",
      "episode_count": 9,
      "id": 3577,
      "name": "特别篇",
      "overview": "",
      "poster_path": "/ikBSCmgG5Z4jequUUAjKpf1QG3T.jpg",
      "season_number": 0,
      "vote_average": 0
    },
    {
      "air_date": "2008-01-20",
      "episode_count": 7,
      "id": 3572,
      "name": "Season 1",
      "overview": "High school chemistry teacher Walter White's life is suddenly transformed by a dire medical diagnosis. Stre...",
      "poster_path": "/91EIXdWxmp2mHNRsSuDW3WyDJLj.jpg",
      "season_number": 1,
      "vote_average": 0
    }
  ],
  "spoken_languages": [
    {
      "english_name": "English",
      "iso_639_1": "en",
      "name": "English"
    },
    {
      "english_name": "Spanish",
      "iso_639_1": "es",
      "name": "Español"
    }
  ],
  "status": "Ended",
  "tagline": "Change the equation.",
  "vote_average": 9,
  "vote_count": 18863,
  "content_ratings": {
    "results": [
      {
        "descriptors": [],
        "iso_3166_1": "AT",
        "rating": "16"
      },
      {
        "descriptors": [],
        "iso_3166_1": "AU",
        "rating": "MA 15+"
      }
    ]
  },
  "ratings": {
    "imdb": {
      "value": 9.5,
      "votes": 2671962
    },
    "kinopoisk": {
      "value": 8.9,
      "votes": null
    },
    "metacritic": null,
    "rotten_tomatoes": {
      "value": 96,
      "votes": null
    },
    "tmdb": {
      "value": 9,
      "votes": 18863
    }
  }
}
```

Блоковете `content_ratings` и `ratings` идват от `append_to_response`. Имената и описанията в `seasons`, `last_episode_to_air` и `next_episode_to_air` се пазят за всеки запис отделно и може да не следват `language`, както показва еврейското име на епизод по-горе. Локализирания текст на сезони и епизоди четете от [ендпойнта за сезон](https://amodb.dev/bg/tv-seasons-episodes/).

## Статус и указатели към епизоди

`status` показва на какъв етап е сериалът, а `next_episode_to_air` подсказва кога да погледнете отново.

| Стойност на `status`       | Значение                            | `next_episode_to_air`                          |
| -------------------------- | ----------------------------------- | ---------------------------------------------- |
| `Returning Series`         | Излъчва се сега или е между сезони. | Зададен, когато датата е известна, иначе null. |
| `Planned`, `In Production` | Още не е редовен сериал.            | Обикновено null.                               |
| `Ended`                    | Е приключил излъчването си.         | Null.                                          |
| `Canceled`                 | Спрян преди планирания край.        | Null.                                          |

Продължаващ сериал между сезони има `next_episode_to_air` със стойност null, затова четете null като „няма известна дата“, а не като „приключил“.

Масивът `seasons` изброява по едно кратко описание на сезон, а сезон `0` съдържа специалните епизоди. За да прочетете епизодите на сезон, извикайте ендпойнта от страницата [сезони и епизоди](https://amodb.dev/bg/tv-seasons-episodes/).

## Свързани ендпойнти за сериал

Всички пътища имат обща основа `https://api.amodb.dev/3`, а ендпойнтите с локализиран текст приемат и `language`.

| Метод и път                              | Какво връща                                                             | Допълнителни параметри |
| ---------------------------------------- | ----------------------------------------------------------------------- | ---------------------- |
| `GET /tv/{series_id}/alternative_titles` | `{id, results}` с `iso_3166_1`, `title`, `type`, често празен           | няма                   |
| `GET /tv/{series_id}/content_ratings`    | Възрастов рейтинг по държави                                            | няма                   |
| `GET /tv/{series_id}/episode_groups`     | Списък с алтернативни подредби на епизодите, като DVD или сюжетна линия | няма                   |
| `GET /tv/{series_id}/recommendations`    | Списък с 20 препоръчани сериала                                         | няма                   |
| `GET /tv/{series_id}/similar`            | Списък с 20 подобни сериала                                             | няма                   |
| `GET /tv/{series_id}/reviews`            | `results` е празен за повечето сериали                                  | няма                   |
| `GET /tv/{series_id}/lists`              | Публични списъци, които съдържат сериала                                | `page`                 |
| `GET /tv/{series_id}/watch/providers`    | Стрийминг, наем и покупка по държави                                    | няма                   |
| `GET /tv/latest`                         | Най-новият добавен запис за сериал                                      | няма                   |

Списъците recommendations и similar винаги връщат страница 1 с 20 елемента. Отговорът `lists` е странициран с `page`, по 20 списъка на страница. Другите странирани списъци в API приемат `page` от 1 до 500.

Възрастовите рейтинги идват като записи в `results` с `iso_3166_1`, `rating` и `descriptors`, затова изберете записа, който съвпада с държавата на зрителя. Доставчиците за гледане са подредени по код на държава, а всяка държава има `link` плюс списъци `flatrate`, `rent` и `buy` с `provider_id`, `provider_name`, `logo_path` и `display_priority`. Id на доставчици за филтриране идват от справочните списъци на страницата [жанрове и справочни списъци](https://amodb.dev/bg/genres/).

Списъкът с групи епизоди връща `id` (низ), `name`, `description`, `type`, `episode_count`, `group_count` и `network`. amodb изброява групите, но не предлага ендпойнт, който връща епизодите на една група. Не предлага и пътищата `changes` на TMDB.

## Слейте повече данни в едно извикване

Изброете подресурсите в `append_to_response` и всеки пристига под собствен ключ. Цялото извикване се брои веднъж към вашите 20, 40 или 120 заявки в минута. Работят до 20 стойности, а непознатите имена се игнорират без грешка. За сериал работят тези стойности:

| Стойност                                                                                                                       | Какво добавя                                 | Подробности                                                                                                                                                                         |
| ------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `credits`                                                                                                                      | Актьори и екип                               | [Участници](https://amodb.dev/bg/credits/)                                                                                                                                          |
| `external_ids`                                                                                                                 | Id като `imdb_id`, `tvdb_id` и `wikidata_id` | [Търсене по външен идентификатор](https://amodb.dev/bg/find-by-external-id/)                                                                                                        |
| `images`, `videos`                                                                                                             | Постери, фонови изображения, трейлъри        | [Изображения](https://amodb.dev/bg/images-api/), [Видеа](https://amodb.dev/bg/videos-trailers/)                                                                                     |
| `keywords`, `translations`                                                                                                     | Етикети и преведени текстове                 | [Ключови думи](https://amodb.dev/bg/keywords/), [Преводи](https://amodb.dev/bg/translations/)                                                                                       |
| `content_ratings`, `alternative_titles`, `episode_groups`, `lists`, `watch/providers`, `similar`, `recommendations`, `reviews` | Подресурсите от таблицата по-горе            | Тази страница                                                                                                                                                                       |
| `ratings`, `moods`, `soundtracks`, `wikidata`, `showtimes`                                                                     | Допълнения на amodb                          | [Рейтинги](https://amodb.dev/bg/ratings/), [Настроения](https://amodb.dev/bg/moods/), [Саундтраци](https://amodb.dev/bg/soundtracks/), [Прожекции](https://amodb.dev/bg/showtimes/) |

## Грешки

Неуспешно извикване връща тялото на грешката на TMDB. Грешно id дава `status_code` 34 със съобщението „The resource you requested could not be found.“

| HTTP | status_code | Кога                                                                        |
| ---- | ----------- | --------------------------------------------------------------------------- |
| 401  | 7           | Ключът липсва или е грешен.                                                 |
| 402  | 36          | Периодът на плана е изтекъл.                                                |
| 404  | 34          | Няма сериал с това id, заглавие за възрастни или път, който не се предлага. |
| 405  | 37          | Извикали сте метод за запис, например оценяване на сериал.                  |
| 429  | 25          | Надхвърлен е лимитът на заявки в минута. Изчакайте `Retry-After` секунди.   |

Пълният списък е на страницата [грешки](https://amodb.dev/bg/errors/), а лимитите по планове са на страницата [лимити на заявките](https://amodb.dev/bg/rate-limits/).

## Практически бележки

- Детайлите за сериал и всеки подресурс по-горе се кешират за 6 часа. Проверявайте `last_episode_to_air` не повече от няколко пъти на ден.
- Искайте езика, който показвате. Празен `overview` означава, че няма превод, затова за резервен вариант повторете заявката с `en-US`.
- Ползвайте `number_of_seasons` като граница на цикъла, когато взимате всеки сезон, по едно извикване.
- За да изброите сериали, вместо да четете един, вижте [търсене](https://amodb.dev/bg/search/), [откриване по филтри](https://amodb.dev/bg/discover/) и [тенденции и списъци](https://amodb.dev/bg/trending-lists/).

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

### Как да разбера дали сериалът още се излъчва?

Четете status заедно с next_episode_to_air. Продължаващ сериал с ненулев next_episode_to_air има насрочен епизод. Приключилите и спрените сериали винаги връщат там null, а сериал между два сезона също може.

### Включва ли записът на сериала IMDb id?

Не в основния запис, както в TMDB. Добавете append_to_response=external_ids, за да получите imdb_id и tvdb_id, или извикайте ендпойнта find с IMDb id, за да минете от външно id към id на сериала.

### Мога ли да взема оценки от IMDb и Rotten Tomatoes за сериал?

Да. Извикайте GET /3/tv/{series_id}/ratings или добавете append_to_response=ratings. Получавате оценки от IMDb, Kinopoisk, Metacritic, Rotten Tomatoes и TMDB, всяка като value и votes или null, когато оценката не е известна.

### За колко време се кешират данните за сериали?

Детайлите за сериал и подресурсите им се кешират на edge за 6 часа, така че току-що излъчен епизод може да се появи в last_episode_to_air с такова закъснение. Списъци като on the air се кешират за 30 минути.

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

- [API за сезони и епизоди на сериали](https://amodb.dev/bg/tv-seasons-episodes/): API за сезони и епизоди със същите пътища и JSON като TMDB v3. Четете сезон с всичките му епизоди или един епизод с дата на излъчване, продължителност и кадър.
- [API за участниците](https://amodb.dev/bg/credits/): API за участници със същите пътища и JSON като TMDB v3. Актьори и екип за филми, сериали, сезони и епизоди, с полета order, department и job.
- [Рейтинги на филми и сериали](https://amodb.dev/bg/ratings/): API за рейтинги на филми връща оценки от IMDb, Kinopoisk, Metacritic, Rotten Tomatoes и TMDB за заглавие с едно извикване, с null за неизвестен източник.
- [API за сериали, сезони и епизоди](https://amodb.dev/bg/tv-show-api/): API за сериали със статус, мрежи, сезони, епизоди и next_episode_to_air. JSON, съвместим с TMDB v3, на 14 езика, от 20 заявки в минута на ключ.
- [Грешки](https://amodb.dev/bg/errors/): Всяка грешка на amodb с HTTP статус, status_code на TMDB и съобщение, плюс формата на грешките на OMDb. Какво означава всяка и какво да направи клиентът ви.
- [Бърз старт](https://amodb.dev/bg/quickstart/): Първата ви заявка към amodb: вземете ключ, поискайте детайли за филм с curl, JavaScript, Python, PHP или Go и заредете постера от img.amodb.dev. До 2 минути.

Обновено: 2026-10-19. Source: https://amodb.dev/bg/tv-series/
