Вземане на прожекциите на филм
GET / връща кината, които прожектират един филм в една държава, всяко със списък от прожекции. country е двубуквен код. Без него results остава празен и получавате само бройки по държави. Покритието зависи от държавата и заглавието, а празен масив results означава, че за тази двойка нищо не е известно.
Получавате име на кино, верига, адрес и часова зона, а за всяка прожекция начален час, зала, формати, тагове и връзка за резервация, където са известни. Връщат се само прожекции от днес нататък. Отговорът описва прожекции. Не е услуга за продажба на билети.
Какви данни получавате
| Ендпойнт | Какво връща |
|---|---|
GET / | Кина и прожекции на един филм в country, или бройки по държави без нея |
GET / | Филми, които се дават в кината, стеснени по region |
GET / с append_ | Детайли плюс прожекции в една заявка, вижте прожекции |
Полета в отговора за прожекции:
| Поле | Тип | Значение |
|---|---|---|
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 | обект или null | key и 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_ | низ или null | Връзка за купуване на билет, когато е известна |
showtimes[].sold_out | булева стойност | true, когато източникът отбелязва прожекцията като разпродадена |
showtimes[].end, audio, subtitles, language, price, currency, prices | различни, често null | Попълват се само когато източникът на киното ги дава |
Отговорът съдържа най-много 1500 прожекции, подредени по кино, после по начален час.
Започнете в 3 стъпки
- Отворете цени и изберете план. Прожекциите са включени във всеки план.
- Създайте ключ в личния си профил.
- Поискайте
/с код3/ movie/ {movie_ id}/ showtimes countryи подайте ключа вapi_keyили в заглавка Bearer.
Пример със заявка
Bash примерът чете прожекциите на Fight Club (id 550) в Русия, където amodb днес има прожекции за него. JS примерът взема първите пет филма от списъка now_playing за Русия и отпечатва до три прожекции на кино или бележка, когато нищо не е известно.
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 от прожекциите си.
{
"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 изброява къде има данни | Покажете неутрална бележка, а не празна таблица |
Не е изпратен country | results е празен, country е null, countries има бройки | Оставете потребителя да избере от countries |
| Непознато id на филм | 404 със status_code 34 | Проверете id |
| Надхвърлен лимит | 429 със status_code 25 | Изчакайте Retry-After секунди |
Празният масив не е грешка и не твърдение, че филмът липсва от кината. Означава, че няма известни данни за прожекции. Вижте грешки за пълния формат на тялото.
Изградете страница с афиш за текущи премиери
Комбинирайте два ендпойнта. Списъкът казва кои филми са текущи, а прожекциите попълват програмата.
| Стъпка | Заявка | Бележки |
|---|---|---|
| 1 | GET / | До 20 филма на страница, кеш 30 минути |
| 2 | GET / | Едно извикване на филм, кеш 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 минути за няколко държави, се събира в най-малката скорост. Няма безплатен план. Изберете план на страницата с цените.