קבלת זמני הקרנה של סרט

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פרטים וזמני הקרנה בבקשה אחת, ראו זמני הקרנה

שדות בתגובת זמני ההקרנה:

שדהסוגמשמעות
idintegerמזהה הסרט
countrystring או nullהקוד בן שתי האותיות שביקשתם, null כשאף קוד לא היה תקין
resultsarrayפריט אחד לכל בית קולנוע, ריק כשלא ידוע דבר או כש-country חסר
countriesarrayספירות לפי מדינה: country, name, venues, cities, showtimes, first_day, last_day
results[].id, name, city, addressinteger, stringsמזהה בית הקולנוע, שם, עיר וכתובת רחוב
results[].chainobject או nullה-key וה-name של רשת בתי הקולנוע
results[].timezonestring או nullאזור IANA של בית הקולנוע, למשל Europe/Moscow
results[].latitude, longitudenumber או nullמיקום, כשהוא ידוע
results[].region, postal_code, phone, urlstring או nullפרטים נוספים על בית הקולנוע, לעיתים קרובות null
results[].showtimesarrayההקרנות בבית הקולנוע הזה
showtimes[].datestringיום מקומי כמו 2026-10-18
showtimes[].startstringשעת התחלה מקומית כמו 2026-10-18T21:40, בלי הפרש
showtimes[].auditoriumstring או nullשם או מספר האולם
showtimes[].formatsarrayפורמטי הקרנה, למשל 2D, IMAX או Dolby Atmos
showtimes[].tagsarrayתוויות נוספות כמו Reserved Seating
showtimes[].booking_urlstring או nullקישור לרכישת כרטיס, כשהוא ידוע
showtimes[].sold_outbooleantrue כשהמקור מסמן את ההקרנה כמכורה במלואה
showtimes[].end, audio, subtitles, language, price, currency, pricesסוגים שונים, לעיתים קרובות nullמתמלאים רק כשמקור נתוני בית הקולנוע מספק אותם

תגובה כוללת לכל היותר 1,500 הקרנות, ממוינות לפי בית קולנוע ואז לפי שעת התחלה.

מתחילים בשלושה שלבים

  1. פתחו את עמוד תמחור ובחרו מסלול. זמני הקרנה כלולים בכל מסלול.
  2. צרו מפתח בלוח הבקרה של החשבון.
  3. בקשו /3/movie/{movie_id}/showtimes עם קוד country, והעבירו את המפתח ב-api_key או ככותרת Bearer.

בקשה לדוגמה

דוגמת ה-bash קוראת את זמני ההקרנה של Fight Club (מזהה 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
מזהה סרט לא מוכר404 עם status_code 34בדקו את המזהה
חריגה מהקצב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 בקשות. תגובה ליציאה גדולה יכולה להגיע למאות קילובייטים, כי היא כוללת עד 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 דקות עבור כמה מדינות מתאים לקצב הנמוך ביותר. אין מסלול חינמי. בחרו מסלול בעמוד תמחור.