Вземане на прожекциите на филм

GET /3/movie/{movie_id}/showtimes?country=US връща кината, които прожектират един филм в една държава, всяко със списък от прожекции. country е двубуквен код. Без него results остава празен и получавате само бройки по държави. Покритието зависи от държавата и заглавието, а празен масив results означава, че за тази двойка нищо не е известно.

Получавате име на кино, верига, адрес и часова зона, а за всяка прожекция начален час, зала, формати, тагове и връзка за резервация, където са известни. Връщат се само прожекции от днес нататък. Отговорът описва прожекции. Не е услуга за продажба на билети.

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

ЕндпойнтКакво връща
GET /3/movie/{movie_id}/showtimesКина и прожекции на един филм в country, или бройки по държави без нея
GET /3/movie/now_playingФилми, които се дават в кината, стеснени по region
GET /3/movie/{movie_id} с append_to_response=showtimesДетайли плюс прожекции в една заявка, вижте прожекции

Полета в отговора за прожекции:

ПолеТипЗначение
idцяло числоId на филма
countryниз или nullДвубуквеният код, който сте поискали, null, когато никой не е бил валиден
resultsмасивЕдин елемент на кино, празен, когато нищо не е известно или country липсва
countriesмасивБройки по държави: country, name, venues, cities, showtimes, first_day, last_day
results[].id, name, city, addressцяло число, низовеId на киното, име, град и пощенски адрес
results[].chainобект или nullkey и name на веригата кина
results[].timezoneниз или nullЗона по IANA на киното, например Europe/Moscow
results[].latitude, longitudeчисло или nullПозиция, когато е известна
results[].region, postal_code, phone, urlниз или nullДопълнителни данни за киното, често null
results[].showtimesмасивПрожекции в това кино
showtimes[].dateнизМестен ден като 2026-10-18
showtimes[].startнизМестен начален час като 2026-10-18T21:40, без отместване
showtimes[].auditoriumниз или nullИме или номер на залата
showtimes[].formatsмасивФормати на прожекцията, например 2D, IMAX или Dolby Atmos
showtimes[].tagsмасивДопълнителни етикети като Reserved Seating
showtimes[].booking_urlниз или nullВръзка за купуване на билет, когато е известна
showtimes[].sold_outбулева стойностtrue, когато източникът отбелязва прожекцията като разпродадена
showtimes[].end, audio, subtitles, language, price, currency, pricesразлични, често nullПопълват се само когато източникът на киното ги дава

Отговорът съдържа най-много 1500 прожекции, подредени по кино, после по начален час.

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

  1. Отворете цени и изберете план. Прожекциите са включени във всеки план.
  2. Създайте ключ в личния си профил.
  3. Поискайте /3/movie/{movie_id}/showtimes с код country и подайте ключа в api_key или в заглавка Bearer.

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

Bash примерът чете прожекциите на Fight Club (id 550) в Русия, където amodb днес има прожекции за него. JS примерът взема първите пет филма от списъка now_playing за Русия и отпечатва до три прожекции на кино или бележка, когато нищо не е известно.

bashjs
curl -s "https://api.amodb.dev/3/movie/550/showtimes?country=RU" \
  -H "Authorization: Bearer $AMODB_KEY"
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.ok) throw new Error(`amodb returned ${res.status} for ${path}`);
  return res.json();
}

const country = 'RU';
const playing = await get('/movie/now_playing', { region: country, page: 1 });

for (const movie of playing.results.slice(0, 5)) {
  const { results } = await get(`/movie/${movie.id}/showtimes`, { country });
  if (results.length === 0) {
    console.log(`${movie.title}: no showtimes known`);
    continue;
  }
  for (const cinema of results) {
    const times = cinema.showtimes
      .slice(0, 3)
      .map((s) => `${s.start.slice(5, 10)} ${s.start.slice(11, 16)} ${s.formats.join('/')}`)
      .join(', ');
    console.log(`${movie.title} at ${cinema.name}, ${cinema.city}: ${times}`);
  }
}

Съкратен отговор за country=RU: първото кино с 2 от прожекциите си.

JSON
{
  "id": 550,
  "country": "RU",
  "results": [
    {
      "id": 1114,
      "name": "Мираж Синема НА БОЛЬШОМ",
      "chain": {
        "key": "mirage-ru",
        "name": "Мираж Синема"
      },
      "city": "Санкт-Петербург",
      "region": null,
      "address": "Большой пр. П.С., д. 35А",
      "postal_code": null,
      "country": "RU",
      "timezone": "Europe/Moscow",
      "latitude": null,
      "longitude": null,
      "phone": null,
      "url": "https://www.mirage.ru/spb/cinema/1/",
      "showtimes": [
        {
          "date": "2026-10-18",
          "start": "2026-10-18T21:40",
          "end": null,
          "auditorium": null,
          "formats": [
            "2D"
          ],
          "tags": [],
          "audio": null,
          "subtitles": null,
          "language": null,
          "price": null,
          "currency": null,
          "prices": null,
          "booking_url": "https://www.mirage.ru/ticket_new/aca7b114-d587-4fc5-9df6-28568e8fa9b3/",
          "sold_out": false
        },
        {
          "date": "2026-10-19",
          "start": "2026-10-19T22:20",
          "end": null,
          "auditorium": "Зал №4",
          "formats": [
            "2D"
          ],
          "tags": [],
          "audio": null,
          "subtitles": null,
          "language": null,
          "price": null,
          "currency": null,
          "prices": null,
          "booking_url": "https://www.mirage.ru/ticket_new/0c32e190-890a-4c81-a754-3300fefc4d5e/",
          "sold_out": false
        }
      ]
    }
  ],
  "countries": [
    {
      "country": "RU",
      "name": "Russia",
      "venues": 2,
      "cities": 1,
      "showtimes": 7,
      "first_day": "2026-10-18",
      "last_day": "2026-10-21"
    }
  ]
}

Покритие и празни резултати

Данни за кината няма за всяка държава или заглавие. Планирайте интерфейса си с това предвид.

СитуацияКакво виждатеКакво да направите
Прожекциите са известниresults има един елемент на киноПокажете списъка
За тази държава и заглавие нищо не е известноresults е празен масив, countries изброява къде има данниПокажете неутрална бележка, а не празна таблица
Не е изпратен countryresults е празен, country е null, countries има бройкиОставете потребителя да избере от countries
Непознато id на филм404 със status_code 34Проверете id
Надхвърлен лимит429 със status_code 25Изчакайте Retry-After секунди

Празният масив не е грешка и не твърдение, че филмът липсва от кината. Означава, че няма известни данни за прожекции. Вижте грешки за пълния формат на тялото.

Изградете страница с афиш за текущи премиери

Комбинирайте два ендпойнта. Списъкът казва кои филми са текущи, а прожекциите попълват програмата.

СтъпкаЗаявкаБележки
1GET /3/movie/now_playing?region=US&page=1До 20 филма на страница, кеш 30 минути
2GET /3/movie/{movie_id}/showtimes?country=USЕдно извикване на филм, кеш 30 минути
3Филтриране във вашия кодПо city, formats или tags

Една страница с 20 филма струва 21 заявки. Отговор за голяма премиера може да е няколкостотин килобайта, защото съдържа до 1500 прожекции. При плана с 20 заявки в минута това е цяла минута от бюджета, затова теглете във фонова задача и обслужвайте посетителите от запазеното си копие. Плановете за 40 и 120 заявки в минута се справят със същата задача с резерв. Вижте лимити на заявките за прозореца и заглавките, а за другите ендпойнти със списъци вижте тенденции и списъци.

Поддържайте копието си свежо

Прожекциите се менят по дни, за разлика от детайлите на филм. Пазете всеки отговор с id на филма, държавата и времето на теглене. TTL от 30 минути до няколко часа върши работа за повечето страници с афиш, а прожекции, които вече са започнали, можете да скриете, като сравните start с текущото време в timezone на киното. Тъй като start няма отместване, не го преместете в часовата зона на посетителя.

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

ВъзможностОбработка на сайтове на кинаAPI за метаданни без прожекцииamodb
НастройкаПо един скрейпър за сайт на киноНе е наличноЕдин ендпойнт, една форма на JSON
Свързване с id на филмСъпоставяне по текст на заглавиетоНе е наличноId на филма в пътя
ПокритиеКаквото успеете да изтеглитеНямаЗависи от държавата и заглавието, празен масив, когато е неизвестно
Формати и резервацияРазчитане на етикети и връзкиНе е наличноПолетата formats, tags и booking_url
ПоддръжкаЧупи се, когато сайт се промениНямаЕдна форма на JSON за всяка държава

Цени

Предплатените планове са за 1, 3, 6, 12 или 24 месеца, с отстъпка 0, 10, 20, 30 или 40 процента за по-дългите. Нищо не се подновява автоматично. Плановете позволяват 20, 40 и 120 заявки в минута и всеки включва прожекции заедно с всички други данни. Страница с афиш, която се обновява на 30 минути за няколко държави, се събира в най-малката скорост. Няма безплатен план. Изберете план на страницата с цените.