k-cinema-bridge
A JSON API providing Korean multiplex (Lotte Cinema, CGV, Megabox) box office and upcoming movie data, enriched with detailed information such as genre, director, and cast from KOBIS (Korean Film Council). Data is automatically refreshed daily at 00:00 UTC.
API Reference
- Base URL:
https://uyeong.github.io/k-cinema-bridge
- All endpoints are accessible via
GET requests without authentication.
- The
info field may be null, so always perform a null check before accessing it.
| Endpoint |
Description |
| GET /api/boxoffice.json |
Combined box office from all sources ({lotte, cgv, megabox}) |
| GET /api/boxoffice/{source}.json |
Box office by source (BoxOfficeMovie[]) |
| GET /api/upcoming.json |
Combined upcoming movies from all sources ({lotte, cgv, megabox}) |
| GET /api/upcoming/{source}.json |
Upcoming movies by source (UpcomingMovie[]) |
Valid source values: lotte, cgv, megabox
Data Models
BoxOfficeMovie
source: "lotte" | "cgv" | "megabox"
rank: number -- Box office rank (starting from 1)
title: string -- Movie title
rating: string -- Audience rating
posterUrl: string -- Poster image URL
info?: MovieInfo -- KOBIS detailed info (may be null)
UpcomingMovie
source: "lotte" | "cgv" | "megabox"
title: string -- Movie title
rating: string -- Audience rating
posterUrl: string -- Poster image URL
releaseDate: string -- Release date (YYYY-MM-DD, may be an empty string)
info?: MovieInfo -- KOBIS detailed info (may be null)
MovieInfo
code, title, englishTitle, originalTitle: string
runtime: string (minutes)
productionYear, openDate (YYYYMMDD), productionStatus, type: string
nations: string[] -- Production countries
genres: string[]
directors: {name, englishName}[]
actors: {name, englishName, role, roleEnglish}[]
showTypes: {group, name}[]
companies: {code, name, englishName, part}[]
audits: {number, grade}[]
staff: {name, englishName, role}[]
Instructions
Recommending Popular Movies
When the user asks for movie recommendations or what's popular:
- Fetch
GET {BASE_URL}/api/boxoffice.json to retrieve combined box office data from all sources.
- Identify movies that appear across multiple sources with low rank values — lower rank means higher popularity.
- Present the top-ranked movies with their title, rating, and genre from
info.genres if available.
Announcing Upcoming Releases
When the user asks about upcoming or soon-to-be-released movies:
- Fetch
GET {BASE_URL}/api/upcoming.json to retrieve combined upcoming movie data.
- Filter results by
releaseDate (YYYY-MM-DD) to match the user's requested time range.
- Provide details such as genre, directors, and actors from the
info field if available.
Searching by Genre, Director, or Actor
When the user asks about a specific genre, director, or actor:
- Fetch both
GET {BASE_URL}/api/boxoffice.json and GET {BASE_URL}/api/upcoming.json.
- Filter results using the
info field:
- Genre: match against
info.genres
- Director: match against
info.directors[].name
- Actor: match against
info.actors[].name
- Always null-check the
info field before accessing nested properties.
Filtering by Audience Rating
When the user asks for age-appropriate movies:
- Use the
rating field to filter. This field is always present and does not require the info field.
- Known rating values: "전체 관람가" (All ages), "12세 관람가" (12+), "15세 관람가" (15+), "청소년 관람불가" (Adults only).
Querying a Specific Multiplex
When the user asks about a specific cinema chain:
- Fetch
GET {BASE_URL}/api/boxoffice/{source}.json or GET {BASE_URL}/api/upcoming/{source}.json.
- Valid source values:
lotte, cgv, megabox.
Comparing Across Multiplexes
When the user asks to compare rankings between cinema chains:
- Fetch
GET {BASE_URL}/api/boxoffice.json to retrieve combined data.
- Find movies with the same
title across different sources and compare their rank values.
Response Guidelines
- Respond in the same language the user is using.
- When presenting movie lists, include title, rank or release date, rating, and genre when available.
- If
info is null for a movie, present only the base fields (title, rank, rating, posterUrl) without guessing missing details.
- When comparing across multiplexes, use a table format for clarity.
1---2name: k-cinema-bridge3description: Query Korean multiplex (Lotte Cinema, CGV, Megabox) box office rankings and upcoming movie data enriched with KOBIS details. Use when the user asks about Korean movies currently showing, box office rankings, upcoming releases, or wants movie recommendations based on genre, director, actor, or rating.4---5
6# k-cinema-bridge
7
8A JSON API providing Korean multiplex (Lotte Cinema, CGV, Megabox) box office and upcoming movie data, enriched with detailed information such as genre, director, and cast from KOBIS (Korean Film Council). Data is automatically refreshed daily at 00:00 UTC.
9
10## API Reference
11
12- Base URL: `https://uyeong.github.io/k-cinema-bridge`
13- All endpoints are accessible via `GET` requests without authentication.
14- The `info` field may be `null`, so always perform a `null` check before accessing it.
15
16| Endpoint | Description |
17|---|---|
18| GET /api/boxoffice.json | Combined box office from all sources (`{lotte, cgv, megabox}`) |
19| GET /api/boxoffice/{source}.json | Box office by source (`BoxOfficeMovie[]`) |
20| GET /api/upcoming.json | Combined upcoming movies from all sources (`{lotte, cgv, megabox}`) |
21| GET /api/upcoming/{source}.json | Upcoming movies by source (`UpcomingMovie[]`) |
22
23Valid source values: `lotte`, `cgv`, `megabox`
24
25## Data Models
26
27### BoxOfficeMovie
28
29```
30source: "lotte" | "cgv" | "megabox"
31rank: number -- Box office rank (starting from 1)
32title: string -- Movie title
33rating: string -- Audience rating
34posterUrl: string -- Poster image URL
35info?: MovieInfo -- KOBIS detailed info (may be null)
36```
37
38### UpcomingMovie
39
40```
41source: "lotte" | "cgv" | "megabox"
42title: string -- Movie title
43rating: string -- Audience rating
44posterUrl: string -- Poster image URL
45releaseDate: string -- Release date (YYYY-MM-DD, may be an empty string)
46info?: MovieInfo -- KOBIS detailed info (may be null)
47```
48
49### MovieInfo
50
51```
52code, title, englishTitle, originalTitle: string
53runtime: string (minutes)
54productionYear, openDate (YYYYMMDD), productionStatus, type: string
55nations: string[] -- Production countries
56genres: string[]
57directors: {name, englishName}[]
58actors: {name, englishName, role, roleEnglish}[]
59showTypes: {group, name}[]
60companies: {code, name, englishName, part}[]
61audits: {number, grade}[]
62staff: {name, englishName, role}[]
63```
64
65## Instructions
66
67### Recommending Popular Movies
68
69When the user asks for movie recommendations or what's popular:
70
711. Fetch `GET {BASE_URL}/api/boxoffice.json` to retrieve combined box office data from all sources.
722. Identify movies that appear across multiple sources with low rank values — lower rank means higher popularity.
733. Present the top-ranked movies with their title, rating, and genre from `info.genres` if available.
74
75### Announcing Upcoming Releases
76
77When the user asks about upcoming or soon-to-be-released movies:
78
791. Fetch `GET {BASE_URL}/api/upcoming.json` to retrieve combined upcoming movie data.
802. Filter results by `releaseDate` (YYYY-MM-DD) to match the user's requested time range.
813. Provide details such as genre, directors, and actors from the `info` field if available.
82
83### Searching by Genre, Director, or Actor
84
85When the user asks about a specific genre, director, or actor:
86
871. Fetch both `GET {BASE_URL}/api/boxoffice.json` and `GET {BASE_URL}/api/upcoming.json`.
882. Filter results using the `info` field:
89 - Genre: match against `info.genres`
90 - Director: match against `info.directors[].name`
91 - Actor: match against `info.actors[].name`
923. Always null-check the `info` field before accessing nested properties.
93
94### Filtering by Audience Rating
95
96When the user asks for age-appropriate movies:
97
981. Use the `rating` field to filter. This field is always present and does not require the `info` field.
992. Known rating values: "전체 관람가" (All ages), "12세 관람가" (12+), "15세 관람가" (15+), "청소년 관람불가" (Adults only).
100
101### Querying a Specific Multiplex
102
103When the user asks about a specific cinema chain:
104
1051. Fetch `GET {BASE_URL}/api/boxoffice/{source}.json` or `GET {BASE_URL}/api/upcoming/{source}.json`.
1062. Valid source values: `lotte`, `cgv`, `megabox`.
107
108### Comparing Across Multiplexes
109
110When the user asks to compare rankings between cinema chains:
111
1121. Fetch `GET {BASE_URL}/api/boxoffice.json` to retrieve combined data.
1132. Find movies with the same `title` across different sources and compare their `rank` values.
114
115## Response Guidelines
116
117- Respond in the same language the user is using.
118- When presenting movie lists, include title, rank or release date, rating, and genre when available.
119- If `info` is `null` for a movie, present only the base fields (title, rank, rating, posterUrl) without guessing missing details.
120- When comparing across multiplexes, use a table format for clarity.