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---56# k-cinema-bridge78A 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.910## API Reference1112- 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.1516| 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[]`) |2223Valid source values: `lotte`, `cgv`, `megabox`2425## Data Models2627### BoxOfficeMovie2829```30source: "lotte" | "cgv" | "megabox"31rank: number -- Box office rank (starting from 1)32title: string -- Movie title33rating: string -- Audience rating34posterUrl: string -- Poster image URL35info?: MovieInfo -- KOBIS detailed info (may be null)36```3738### UpcomingMovie3940```41source: "lotte" | "cgv" | "megabox"42title: string -- Movie title43rating: string -- Audience rating44posterUrl: string -- Poster image URL45releaseDate: string -- Release date (YYYY-MM-DD, may be an empty string)46info?: MovieInfo -- KOBIS detailed info (may be null)47```4849### MovieInfo5051```52code, title, englishTitle, originalTitle: string53runtime: string (minutes)54productionYear, openDate (YYYYMMDD), productionStatus, type: string55nations: string[] -- Production countries56genres: 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```6465## Instructions6667### Recommending Popular Movies6869When the user asks for movie recommendations or what's popular:70711. 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.7475### Announcing Upcoming Releases7677When the user asks about upcoming or soon-to-be-released movies:78791. 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.8283### Searching by Genre, Director, or Actor8485When the user asks about a specific genre, director, or actor:86871. 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.9394### Filtering by Audience Rating9596When the user asks for age-appropriate movies:97981. 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).100101### Querying a Specific Multiplex102103When the user asks about a specific cinema chain:1041051. Fetch `GET {BASE_URL}/api/boxoffice/{source}.json` or `GET {BASE_URL}/api/upcoming/{source}.json`.1062. Valid source values: `lotte`, `cgv`, `megabox`.107108### Comparing Across Multiplexes109110When the user asks to compare rankings between cinema chains:1111121. 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.114115## Response Guidelines116117- 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.