# API seriale TV

> Endpoint-ul pentru seriale TV întoarce un serial după ID la GET /3/tv/{series_id}: nume, descriere, stare, sezoane, rețele, genuri și indicatori către ultimul și următorul episod. JSON-ul se potrivește cu TMDB v3, deci clienții existenți au nevoie doar de un URL de bază nou. Adaugă append_to_response ca să îmbini clasificări de conținut, credite și evaluări într-o singură cerere.

## Endpoint

`GET /3/tv/{series_id}`

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

Răspuns:

```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
}
```

## Obține detaliile unui serial TV

`GET /3/tv/{series_id}` întoarce fișa de bază a unui serial: nume, descriere, stare, genuri, rețele, lista de sezoane și indicatori către ultimul și următorul episod. ID-ul este ID-ul numeric de TV TMDB, deci un serial pe care îl stochezi ca `1396` păstrează acel ID aici. ID-urile de film și cele de TV sunt spații separate, deci stochează mereu tipul de media lângă număr.

Exemplul cere Breaking Bad în engleză și îi atașează în același apel clasificările de conținut și scorurile externe.

```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)
}
```

### Parametri

| Parametru            | Loc        | Obligatoriu          | Descriere                                                                                           |
| -------------------- | ---------- | -------------------- | --------------------------------------------------------------------------------------------------- |
| `series_id`          | cale       | da                   | ID numeric de TV, de exemplu `1396`.                                                                |
| `api_key`            | interogare | una dintre cele două | Cheia ta. Folosește-o pe aceasta sau antetul `Authorization: Bearer`.                               |
| `language`           | interogare | nu                   | Etichetă TMDB precum `en-US`, `uk-UA` sau `es-ES`. Sunt servite 14 limbi de bază. Implicit `en-US`. |
| `append_to_response` | interogare | nu                   | Listă separată prin virgulă de sub-resurse de îmbinat în răspuns, până la 20 de valori.             |

### Câmpurile răspunsului

| Câmp                                               | Tip                 | Observații                                                                                                                    |
| -------------------------------------------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `id`                                               | număr întreg        | ID-ul TV.                                                                                                                     |
| `name`, `original_name`                            | șir                 | Titlul localizat și cel original. Numele originale în japoneză sau coreeană rămân în `original_name`.                         |
| `overview`, `tagline`                              | șir                 | Text localizat, gol când nu există traducere.                                                                                 |
| `first_air_date`, `last_air_date`                  | șir sau null        | `YYYY-MM-DD`.                                                                                                                 |
| `status`                                           | șir                 | Ciclul de viață, vezi tabelul de mai jos.                                                                                     |
| `in_production`                                    | boolean             | `true` cât timp serialul încă se produce.                                                                                     |
| `number_of_seasons`, `number_of_episodes`          | număr întreg        | Totaluri, așa cum sunt stocate pentru serial.                                                                                 |
| `episode_run_time`                                 | array               | Durate tipice de episod în minute, poate fi gol.                                                                              |
| `seasons`                                          | array               | Un rezumat pe sezon cu `id`, `season_number`, `name`, `overview`, `episode_count`, `air_date`, `poster_path`, `vote_average`. |
| `last_episode_to_air`, `next_episode_to_air`       | obiect sau null     | Rezumate de episoade, cu structura obiectelor de la [sezoane și episoade](https://amodb.dev/ro/tv-seasons-episodes/).         |
| `networks`, `production_companies`                 | array               | `id`, `name`, `logo_path`, `origin_country`.                                                                                  |
| `production_countries`, `spoken_languages`         | array               | Țări cu `iso_3166_1` și `name`. Limbi cu `english_name`, `iso_639_1` și `name`.                                               |
| `created_by`                                       | array               | Creatori cu `id`, `name`, `profile_path` și `credit_id`. Gol la majoritatea serialelor.                                       |
| `genres`                                           | array               | Obiecte cu `id` și `name`. ID-urile de gen TV diferă de cele de film.                                                         |
| `origin_country`, `original_language`, `languages` | array, șir          | Coduri de țară și coduri de limbă.                                                                                            |
| `homepage`                                         | șir                 | Site oficial, gol când nu se cunoaște.                                                                                        |
| `poster_path`, `backdrop_path`                     | șir sau null        | Se adaugă la `https://img.amodb.dev/t/p/{size}`. Vezi [imagini](https://amodb.dev/ro/images-api/).                            |
| `popularity`                                       | număr               | Scor relativ folosit de lista populară.                                                                                       |
| `vote_average`, `vote_count`                       | număr, număr întreg | Scor agregat al utilizatorilor.                                                                                               |
| `adult`                                            | boolean             | Mereu `false`. Titlurile pentru adulți nu sunt servite niciodată.                                                             |

### Exemplu de răspuns

`GET /3/tv/1396?language=en-US&append_to_response=content_ratings,ratings`, cu array-urile lungi și textul scurtate:

```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
    }
  }
}
```

Blocurile `content_ratings` și `ratings` vin din `append_to_response`. Numele și descrierile din `seasons`, `last_episode_to_air` și `next_episode_to_air` sunt stocate pe înregistrare și este posibil să nu urmeze `language`, după cum arată numele de episod în ebraică de mai sus. Citește textul localizat de sezon și de episod de la [endpoint-ul de sezon](https://amodb.dev/ro/tv-seasons-episodes/).

## Stare și indicatori de episoade

`status` îți spune în ce fază a vieții se află un serial, iar `next_episode_to_air` îți spune când să te uiți din nou.

| Valoare `status`           | Semnificație                         | `next_episode_to_air`                       |
| -------------------------- | ------------------------------------ | ------------------------------------------- |
| `Returning Series`         | În difuzare acum sau între sezoane.  | Setat când se cunoaște o dată, altfel null. |
| `Planned`, `In Production` | Încă nu este un serial obișnuit.     | De obicei null.                             |
| `Ended`                    | Și-a încheiat difuzarea.             | Null.                                       |
| `Canceled`                 | Oprit înainte de finalul planificat. | Null.                                       |

Un serial care revine, aflat între sezoane, are `next_episode_to_air` null, deci citește null ca „nu se cunoaște nicio dată” și nu ca „încheiat”.

Array-ul `seasons` listează un rezumat pe sezon, iar sezonul `0` conține episoadele speciale. Ca să citești episoadele unui sezon, apelează endpoint-ul de la [sezoane și episoade](https://amodb.dev/ro/tv-seasons-episodes/).

## Endpoint-uri înrudite pentru seriale

Toate căile au baza `https://api.amodb.dev/3`, iar endpoint-urile cu text localizat primesc și `language`.

| Metodă și cale                           | Întoarce                                                            | Parametri suplimentari |
| ---------------------------------------- | ------------------------------------------------------------------- | ---------------------- |
| `GET /tv/{series_id}/alternative_titles` | `{id, results}` cu `iso_3166_1`, `title`, `type`, adesea gol        | niciunul               |
| `GET /tv/{series_id}/content_ratings`    | Clasificare pe vârste pe țară                                       | niciunul               |
| `GET /tv/{series_id}/episode_groups`     | Listă de ordini alternative de episoade, precum DVD sau arc narativ | niciunul               |
| `GET /tv/{series_id}/recommendations`    | O listă de 20 de seriale recomandate                                | niciunul               |
| `GET /tv/{series_id}/similar`            | O listă de 20 de seriale similare                                   | niciunul               |
| `GET /tv/{series_id}/reviews`            | `results` este gol pentru majoritatea serialelor                    | niciunul               |
| `GET /tv/{series_id}/lists`              | Liste publice care conțin serialul                                  | `page`                 |
| `GET /tv/{series_id}/watch/providers`    | Furnizori de streaming, închiriere și cumpărare pe țară             | niciunul               |
| `GET /tv/latest`                         | Cea mai nouă înregistrare de serial adăugată                        | niciunul               |

Listele de recomandări și de seriale similare întorc mereu pagina 1 cu 20 de elemente. Răspunsul `lists` este paginat cu `page`, câte 20 de liste pe pagină. Listele paginate din alte părți ale API-ului primesc `page` de la 1 la 500.

Clasificările de conținut vin ca intrări `results` cu `iso_3166_1`, `rating` și `descriptors`, deci alege intrarea care se potrivește cu țara spectatorului. Furnizorii de vizionare sunt indexați după codul de țară, iar fiecare țară conține un `link` plus liste `flatrate`, `rent` și `buy` cu `provider_id`, `provider_name`, `logo_path` și `display_priority`. ID-urile de furnizori pentru filtrare vin din listele de referință de la [genuri și liste de referință](https://amodb.dev/ro/genres/).

Lista grupurilor de episoade întoarce `id` (un șir), `name`, `description`, `type`, `episode_count`, `group_count` și `network`. amodb listează grupurile, dar nu oferă un endpoint care să întoarcă episoadele unui grup. Nu oferă nici căile TMDB `changes`.

## Îmbină mai multe date într-un singur apel

Listează sub-resursele în `append_to_response` și fiecare sosește sub propria cheie. Tot apelul se numără o dată din cele 20, 40 sau 120 de cereri pe minut. Funcționează până la 20 de valori, iar numele necunoscute sunt ignorate fără eroare. Aceste valori funcționează la un serial:

| Valoare                                                                                                                        | Adaugă                                              | Detalii                                                                                                                                                                                           |
| ------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `credits`                                                                                                                      | Distribuție și echipă                               | [Credite](https://amodb.dev/ro/credits/)                                                                                                                                                          |
| `external_ids`                                                                                                                 | ID-uri precum `imdb_id`, `tvdb_id` și `wikidata_id` | [Căutare după ID extern](https://amodb.dev/ro/find-by-external-id/)                                                                                                                               |
| `images`, `videos`                                                                                                             | Postere, imagini de fundal, trailere                | [Imagini](https://amodb.dev/ro/images-api/), [Videoclipuri](https://amodb.dev/ro/videos-trailers/)                                                                                                |
| `keywords`, `translations`                                                                                                     | Etichete și texte traduse                           | [Cuvinte-cheie](https://amodb.dev/ro/keywords/), [Traduceri](https://amodb.dev/ro/translations/)                                                                                                  |
| `content_ratings`, `alternative_titles`, `episode_groups`, `lists`, `watch/providers`, `similar`, `recommendations`, `reviews` | Sub-resursele din tabelul de mai sus                | Această pagină                                                                                                                                                                                    |
| `ratings`, `moods`, `soundtracks`, `wikidata`, `showtimes`                                                                     | Extra amodb                                         | [Evaluări](https://amodb.dev/ro/ratings/), [Atmosfere](https://amodb.dev/ro/moods/), [Coloane sonore](https://amodb.dev/ro/soundtracks/), [Program de proiecții](https://amodb.dev/ro/showtimes/) |

## Erori

Un apel eșuat întoarce corpul de eroare TMDB. Un ID greșit dă `status_code` 34 cu mesajul „The resource you requested could not be found.”

| HTTP | status_code | Când                                                                              |
| ---- | ----------- | --------------------------------------------------------------------------------- |
| 401  | 7           | Cheia lipsește sau este greșită.                                                  |
| 402  | 36          | Perioada planului s-a încheiat.                                                   |
| 404  | 34          | Niciun serial cu acel ID, un titlu pentru adulți sau o cale care nu este oferită. |
| 405  | 37          | Ai apelat o metodă de scriere, precum evaluarea unui serial.                      |
| 429  | 25          | Ai depășit cererile pe minut. Așteaptă numărul de secunde din `Retry-After`.      |

Lista completă este la [erori](https://amodb.dev/ro/errors/), iar limitele pe plan sunt la [limite de cereri](https://amodb.dev/ro/rate-limits/).

## Note practice

- Detaliile serialelor și fiecare sub-resursă de mai sus sunt ținute în cache 6 ore. Interoghează `last_episode_to_air` cel mult de câteva ori pe zi.
- Cere limba pe care o afișezi. Un `overview` gol înseamnă că nu există traducere, deci cere din nou cu `en-US` pentru o variantă de rezervă.
- Folosește `number_of_seasons` drept limită a buclei când preiei fiecare sezon, câte un apel pe sezon.
- Ca să listezi seriale în loc să citești unul, vezi [căutare](https://amodb.dev/ro/search/), [descoperire](https://amodb.dev/ro/discover/) și [tendințe și liste](https://amodb.dev/ro/trending-lists/).

## Întrebări și răspunsuri

### Cum aflu dacă un serial încă se difuzează?

Citește status împreună cu next_episode_to_air. Un serial care revine, cu un next_episode_to_air nenul, are un episod programat. Serialele încheiate și anulate întorc mereu null acolo, și la fel poate face unul aflat între sezoane.

### Include fișa serialului un ID IMDb?

Nu în fișa de bază, ca la TMDB. Adaugă append_to_response=external_ids ca să primești imdb_id și tvdb_id sau apelează endpoint-ul find cu un ID IMDb ca să treci de la un ID extern la ID-ul serialului.

### Pot obține scorurile IMDb și Rotten Tomatoes pentru un serial?

Da. Apelează GET /3/tv/{series_id}/ratings sau adaugă append_to_response=ratings. Primești scorurile IMDb, Kinopoisk, Metacritic, Rotten Tomatoes și TMDB, fiecare ca value și votes, sau null când scorul nu se cunoaște.

### Cât timp sunt ținute în cache datele TV?

Detaliile serialelor și sub-resursele lor sunt ținute în cache la margine 6 ore, deci un episod difuzat de curând poate apărea în last_episode_to_air cu acea întârziere. Listele precum on the air sunt ținute în cache 30 de minute.

## Pagini conexe

- [API sezoane și episoade TV](https://amodb.dev/ro/tv-seasons-episodes/): API sezoane și episoade TV cu aceleași căi și același JSON ca TMDB v3. Citește un sezon cu toate episoadele sau un episod cu data difuzării, durata și cadrul.
- [API credite](https://amodb.dev/ro/credits/): API credite cu aceleași căi și același JSON ca TMDB v3. Distribuția și echipa pentru filme, seriale, sezoane și episoade, cu order, department și job.
- [Evaluări pentru filme și TV](https://amodb.dev/ro/ratings/): API evaluări filme ce întoarce scorurile IMDb, Kinopoisk, Metacritic, Rotten Tomatoes și TMDB pentru un titlu într-un apel, cu null pentru sursele necunoscute.
- [API seriale TV pentru seriale, sezoane și episoade](https://amodb.dev/ro/tv-show-api/): API seriale TV cu starea serialului, rețele, sezoane, episoade și next_episode_to_air. JSON compatibil TMDB v3 în 14 limbi, de la 20 de cereri pe minut.
- [Erori](https://amodb.dev/ro/errors/): Fiecare eroare amodb, cu statusul HTTP, status_code TMDB și mesajul, plus forma erorii OMDb. Ce înseamnă fiecare și ce ar trebui să facă clientul tău.
- [Ghid rapid](https://amodb.dev/ro/quickstart/): Fă primul apel amodb: ia o cheie, cere detaliile unui film în curl, JavaScript, Python, PHP sau Go, apoi încarcă posterul de pe img.amodb.dev. Sub 2 minute.

Actualizat: 2026-10-19. Source: https://amodb.dev/ro/tv-series/
