קבלת זמני הקרנה של סרט
GET / מחזיר את בתי הקולנוע שמקרינים סרט אחד במדינה אחת, ולכל אחד רשימת הקרנות. country הוא קוד של שתי אותיות. בלעדיו results נשאר ריק ומקבלים רק ספירות לפי מדינה. הכיסוי משתנה לפי מדינה וכותר, ומערך results ריק אומר שלא ידוע דבר עבור הצמד הזה.
מקבלים את שם בית הקולנוע, הרשת, הכתובת ואזור הזמן, ולכל הקרנה את שעת ההתחלה, האולם, הפורמטים, התגיות וקישור להזמנה כשהם ידועים. מוחזרות רק הקרנות מהיום והלאה. התגובה מתארת הקרנות. היא אינה שירות כרטוס.
אילו נתונים מקבלים
| נקודת קצה | מה מוחזר |
|---|---|
GET / | בתי קולנוע והקרנות של סרט אחד ב-country, או ספירות לפי מדינה בלעדיו |
GET / | סרטים שמוצגים כעת בבתי קולנוע, מצומצמים לפי region |
GET / עם append_ | פרטים וזמני הקרנה בבקשה אחת, ראו זמני הקרנה |
שדות בתגובת זמני ההקרנה:
| שדה | סוג | משמעות |
|---|---|---|
id | integer | מזהה הסרט |
country | string או null | הקוד בן שתי האותיות שביקשתם, null כשאף קוד לא היה תקין |
results | array | פריט אחד לכל בית קולנוע, ריק כשלא ידוע דבר או כש-country חסר |
countries | array | ספירות לפי מדינה: country, name, venues, cities, showtimes, first_day, last_day |
results[].id, name, city, address | integer, strings | מזהה בית הקולנוע, שם, עיר וכתובת רחוב |
results[].chain | object או null | ה-key וה-name של רשת בתי הקולנוע |
results[].timezone | string או null | אזור IANA של בית הקולנוע, למשל Europe/Moscow |
results[].latitude, longitude | number או null | מיקום, כשהוא ידוע |
results[].region, postal_code, phone, url | string או null | פרטים נוספים על בית הקולנוע, לעיתים קרובות null |
results[].showtimes | array | ההקרנות בבית הקולנוע הזה |
showtimes[].date | string | יום מקומי כמו 2026-10-18 |
showtimes[].start | string | שעת התחלה מקומית כמו 2026-10-18T21:40, בלי הפרש |
showtimes[].auditorium | string או null | שם או מספר האולם |
showtimes[].formats | array | פורמטי הקרנה, למשל 2D, IMAX או Dolby Atmos |
showtimes[].tags | array | תוויות נוספות כמו Reserved Seating |
showtimes[].booking_ | string או null | קישור לרכישת כרטיס, כשהוא ידוע |
showtimes[].sold_out | boolean | true כשהמקור מסמן את ההקרנה כמכורה במלואה |
showtimes[].end, audio, subtitles, language, price, currency, prices | סוגים שונים, לעיתים קרובות null | מתמלאים רק כשמקור נתוני בית הקולנוע מספק אותם |
תגובה כוללת לכל היותר 1,500 הקרנות, ממוינות לפי בית קולנוע ואז לפי שעת התחלה.
מתחילים בשלושה שלבים
- פתחו את עמוד תמחור ובחרו מסלול. זמני הקרנה כלולים בכל מסלול.
- צרו מפתח בלוח הבקרה של החשבון.
- בקשו
/עם קוד3/ movie/ {movie_ id}/ showtimes country, והעבירו את המפתח ב-api_keyאו ככותרת Bearer.
בקשה לדוגמה
דוגמת ה-bash קוראת את זמני ההקרנה של Fight Club (מזהה 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 |
| מזהה סרט לא מוכר | 404 עם status_code 34 | בדקו את המזהה |
| חריגה מהקצב | 429 עם status_code 25 | המתינו Retry-After שניות |
מערך ריק אינו שגיאה ואינו טענה שהסרט חסר בבתי הקולנוע. הוא אומר שלא ידועים נתוני הקרנה. את פורמט הגוף המלא ראו בעמוד שגיאות.
בניית עמוד רשימות ליציאות עדכניות
משלבים שתי נקודות קצה. הרשימה אומרת אילו סרטים עדכניים, וזמני ההקרנה ממלאים את ההקרנות.
| שלב | בקשה | הערות |
|---|---|---|
| 1 | GET / | עד 20 סרטים בעמוד, נשמר במטמון 30 דקות |
| 2 | GET / | קריאה אחת לכל סרט, נשמרת במטמון 30 דקות |
| 3 | סינון בקוד שלכם | לפי city, formats או tags |
עמוד אחד של 20 סרטים עולה 21 בקשות. תגובה ליציאה גדולה יכולה להגיע למאות קילובייטים, כי היא כוללת עד 1,500 הקרנות. במסלול של 20 בקשות לדקה זה תקציב של דקה שלמה, ולכן שלפו במשימת רקע והגישו למבקרים מהעותק השמור שלכם. המסלולים של 40 ו-120 בקשות לדקה מתאימים לאותה משימה עם מרווח. את החלון והכותרות ראו בעמוד מגבלות קצב, ואת נקודות הקצה האחרות של רשימות בעמוד טרנדים ורשימות.
שמירה על עותק עדכני
זמני הקרנה משתנים מיום ליום, בניגוד לפרטי סרט. שמרו כל תגובה עם מזהה הסרט, המדינה וזמן השליפה. TTL של 30 דקות עד כמה שעות מתאים לרוב עמודי הרשימות, ואת ההקרנות שכבר התחילו אפשר להסתיר בהשוואת start לשעה הנוכחית באזור הזמן timezone של בית הקולנוע. מכיוון ש-start אינו נושא הפרש, אל תזיזו אותו לאזור הזמן של המבקר.
איך זה בהשוואה
| יכולת | גירוד אתרי בתי קולנוע | API למטא-נתונים בלי זמני הקרנה | amodb |
|---|---|---|---|
| הקמה | מגרד אחד לכל אתר בית קולנוע | לא קיים | נקודת קצה אחת, מבנה JSON אחד |
| התאמה למזהה סרט | התאמה לפי טקסט הכותרת | לא קיים | מזהה הסרט בנתיב |
| כיסוי | מה שאפשר לגרד | אין | משתנה לפי מדינה וכותר, מערך ריק כשלא ידוע |
| פורמטים והזמנה | ניתוח תוויות וקישורים | לא קיים | השדות formats, tags ו-booking_url |
| תחזוקה | נשבר כשאתר משתנה | אין | מבנה JSON אחד לכל מדינה |
תמחור
מסלולים בתשלום מראש נמשכים 1, 3, 6, 12 או 24 חודשים, עם 0, 10, 20, 30 או 40 אחוז הנחה לתקופות הארוכות יותר. שום דבר לא מתחדש אוטומטית. המסלולים מאפשרים 20, 40 ו-120 בקשות לדקה, וכל אחד כולל זמני הקרנה לצד כל שאר הנתונים. עמוד רשימות שמתרענן כל 30 דקות עבור כמה מדינות מתאים לקצב הנמוך ביותר. אין מסלול חינמי. בחרו מסלול בעמוד תמחור.