{
    "openapi": "3.0.0",
    "info": {
        "title": "kvikmyndir.is API",
        "description": "Public API for kvikmyndir.is.\n\n**Getting an API key:** see https://kvikmyndir.is/forritaskil/ — signed-in users can create a personal key in Stillingar; partner keys (higher limits) are issued on request via the form on that page.\n\n**Attribution:** credit kvikmyndir.is and link back to the movie page (`https://kvikmyndir.is/mynd/?id=<id>`).\n\n**Auth:** every endpoint needs a partner API key, sent either as `Authorization: Bearer <key>` or `?key=<key>`. Per-user actions (/me/*) use an additional `X-User-Token` header (with `X-User-Id`); obtain one via the `/auth/*` endpoints.\n\n**Rate limits:** per-key, per-minute and per-day. See the `X-RateLimit-*` response headers.\n\n**Caching:** catalogue responses carry an `ETag`; send it back as `If-None-Match` to get a cheap `304`. CORS is open, so browser apps can call the API directly.",
        "version": "2.0.0"
    },
    "servers": [
        {
            "url": "https://kvikmyndir.is/api/v2",
            "description": "Production"
        }
    ],
    "paths": {
        "/auth/login": {
            "post": {
                "tags": [
                    "Auth"
                ],
                "summary": "Authenticate with username/email + password",
                "description": "Validates credentials via WordPress and returns a user token. Requires a partner key.",
                "operationId": "b40bfa2ac5bbe4adc0191b14aa904524",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "username": {
                                        "description": "Username or email",
                                        "type": "string"
                                    },
                                    "password": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Authenticated; returns token + user"
                    },
                    "401": {
                        "description": "Invalid credentials"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/auth/register": {
            "post": {
                "tags": [
                    "Auth"
                ],
                "summary": "Create a new account",
                "description": "Creates a WordPress user and returns a user token. Requires a partner key.",
                "operationId": "b0ba50771cb0a7f81ddb81f062141c49",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "username": {
                                        "type": "string"
                                    },
                                    "email": {
                                        "type": "string"
                                    },
                                    "password": {
                                        "type": "string",
                                        "minLength": 6
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Account created; returns token + user"
                    },
                    "409": {
                        "description": "Username or email already in use"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/auth/email-code": {
            "post": {
                "tags": [
                    "Auth"
                ],
                "summary": "Email a 6-digit login code",
                "description": "Generates a 6-digit code, stores it for 10 minutes and emails it to the account owner. Limited to one request per email per 60s. Requires a partner key.",
                "operationId": "6c38252d29b72d0d54ebb001c05f4ee6",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "email": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Code sent"
                    },
                    "404": {
                        "description": "No account for that email"
                    },
                    "429": {
                        "description": "A code was sent too recently"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/auth/verify-code": {
            "post": {
                "tags": [
                    "Auth"
                ],
                "summary": "Verify an emailed login code",
                "description": "Validates the 6-digit code from /auth/email-code and returns a user token. The code is single-use. Requires a partner key.",
                "operationId": "fbb84326576b9234a2050d06a91355c8",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "email": {
                                        "type": "string"
                                    },
                                    "code": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Verified; returns token + user"
                    },
                    "401": {
                        "description": "Expired or wrong code"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/auth/session": {
            "post": {
                "tags": [
                    "Auth"
                ],
                "summary": "Validate an existing session token",
                "description": "Checks that a stored user token is still valid and that the account still exists. Send the token + user_id. Requires a partner key.",
                "operationId": "db407b5353a027ce05f67c9253f843f3",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "user_id": {
                                        "type": "integer"
                                    },
                                    "auth_token": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Validity flag (+ user when valid)"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/genres": {
            "get": {
                "tags": [
                    "Movies"
                ],
                "summary": "List genres",
                "description": "All genres with Icelandic and English names. Ports api/genres.",
                "operationId": "fca57a4468e93b174eb45bafeb3681d4",
                "responses": {
                    "200": {
                        "description": "Genre list"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/lists": {
            "get": {
                "tags": [
                    "Lists"
                ],
                "summary": "Curated movie lists",
                "description": "All curated lists (newest first). Ports 1.2/lists.",
                "operationId": "7a635ffd630ce0758ad38478ff98b5a0",
                "responses": {
                    "200": {
                        "description": "List of lists"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/lists/{id}": {
            "get": {
                "tags": [
                    "Lists"
                ],
                "summary": "Get a list with its movies",
                "description": "A single curated list plus the movies it contains. Ports 1.2/lists item view.",
                "operationId": "11f3c6a8aa67e621c447ebdf769f3884",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "List record"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/me/list": {
            "get": {
                "tags": [
                    "Me"
                ],
                "summary": "The signed-in user's watchlist",
                "description": "Returns the wannasee or seen list for the authenticated user. Requires a partner key plus X-User-Token / X-User-Id.",
                "operationId": "ad6bbb5ffd5c5213bac2470322e4897d",
                "parameters": [
                    {
                        "name": "type",
                        "in": "query",
                        "description": "wannasee (default) or seen",
                        "schema": {
                            "type": "string",
                            "default": "wannasee",
                            "enum": [
                                "wannasee",
                                "seen"
                            ]
                        }
                    },
                    {
                        "name": "X-User-Id",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The user's list"
                    }
                },
                "security": [
                    {
                        "ApiKey": [],
                        "UserToken": []
                    }
                ]
            },
            "post": {
                "tags": [
                    "Me"
                ],
                "summary": "Add/remove a movie on the wannasee or seen list",
                "description": "Mirrors the legacy behaviour: marking a movie as seen (type=1) also clears it from wannasee, and adds award a lottery ticket. Send a JSON body.",
                "operationId": "4352af1d31dcf9ca7017a9dfe23296ad",
                "parameters": [
                    {
                        "name": "X-User-Id",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "movie": {
                                        "type": "integer"
                                    },
                                    "list": {
                                        "type": "string",
                                        "default": "wannasee",
                                        "enum": [
                                            "wannasee",
                                            "seen"
                                        ]
                                    },
                                    "type": {
                                        "description": "1 = add, 0 = remove",
                                        "type": "integer",
                                        "default": 1,
                                        "enum": [
                                            0,
                                            1
                                        ]
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Updated"
                    }
                },
                "security": [
                    {
                        "ApiKey": [],
                        "UserToken": []
                    }
                ]
            }
        },
        "/me/ratings": {
            "get": {
                "tags": [
                    "Me"
                ],
                "summary": "The signed-in user's movie ratings",
                "description": "Returns every movie the authenticated user has rated, with their score (1-10). Requires a partner key plus X-User-Token / X-User-Id (or a personal API key).",
                "operationId": "b73dcf388375afb54c408ec599eb4115",
                "parameters": [
                    {
                        "name": "X-User-Id",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The user's ratings"
                    }
                },
                "security": [
                    {
                        "ApiKey": [],
                        "UserToken": []
                    }
                ]
            }
        },
        "/me/movies/{id}/status": {
            "get": {
                "tags": [
                    "Me"
                ],
                "summary": "The user's status for a movie",
                "description": "Whether the authenticated user has this movie on their wannasee and/or seen list.",
                "operationId": "46ef38ee0e6c9431a412dfb35b4fd0e1",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "X-User-Id",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Status flags"
                    }
                },
                "security": [
                    {
                        "ApiKey": [],
                        "UserToken": []
                    }
                ]
            }
        },
        "/me/reviews": {
            "post": {
                "tags": [
                    "Me"
                ],
                "summary": "Submit a movie review",
                "description": "Submits a review for moderation (P_Status=1). An optional rating (1-10) is recorded alongside. Send a JSON body.",
                "operationId": "b3928cd73babd7b72c4dfb929173f3ec",
                "parameters": [
                    {
                        "name": "X-User-Id",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "properties": {
                                    "movie": {
                                        "type": "integer"
                                    },
                                    "headline": {
                                        "type": "string"
                                    },
                                    "text": {
                                        "type": "string"
                                    },
                                    "rating": {
                                        "type": "integer",
                                        "maximum": 10,
                                        "minimum": 1,
                                        "nullable": true
                                    }
                                },
                                "type": "object"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Review submitted for moderation"
                    },
                    "400": {
                        "description": "Invalid input"
                    }
                },
                "security": [
                    {
                        "ApiKey": [],
                        "UserToken": []
                    }
                ]
            }
        },
        "/movies": {
            "get": {
                "tags": [
                    "Movies"
                ],
                "summary": "List movies",
                "description": "Paginated, filterable list of movies. Same core fields as the v1 all_movies feed.",
                "operationId": "e5056c3a1bb7f90ebc5977e84dec6cf5",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 25,
                            "maximum": 100
                        }
                    },
                    {
                        "name": "year",
                        "in": "query",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "genre",
                        "in": "query",
                        "description": "Genre ID",
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "tv_show",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "enum": [
                                0,
                                1
                            ]
                        }
                    },
                    {
                        "name": "q",
                        "in": "query",
                        "description": "Title search",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A page of movies"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/movies/{id}": {
            "get": {
                "tags": [
                    "Movies"
                ],
                "summary": "Get a movie by ID",
                "operationId": "d8116cef2f3aa3d2b1b2821c8c506c94",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "expand",
                        "in": "query",
                        "description": "Comma-separated extras: cast, trailer, streaming, similar.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Movie record"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/persons/{id}": {
            "get": {
                "tags": [
                    "Persons"
                ],
                "summary": "Get a person with filmography",
                "description": "Person detail plus credits grouped by role (actor, director, writer). Ports 1.1/person.",
                "operationId": "79aa8136ffc79c9c552926565c7214e2",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Person record"
                    },
                    "404": {
                        "description": "Not found"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/search": {
            "get": {
                "tags": [
                    "Search"
                ],
                "summary": "Search movies by title",
                "description": "Fast title search against Title and TitleAliases. Exact-prefix matches rank first.",
                "operationId": "a16c87789fc0ce96bc9f6b6c5150fa09",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 20,
                            "maximum": 50
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Matching movies"
                    },
                    "400": {
                        "description": "Missing query"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/series/{id}": {
            "get": {
                "tags": [
                    "TV"
                ],
                "summary": "Get a TV series",
                "description": "Series details, seasons, networks, the last and next episode, and where it streams in Iceland. `id` is the same id as /movies (tv_show = 1).",
                "operationId": "3988b98ea214d532659881daa0792165",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Series record"
                    },
                    "404": {
                        "description": "Not found (or not a series)"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/series/{id}/episodes": {
            "get": {
                "tags": [
                    "TV"
                ],
                "summary": "Episodes of a series",
                "description": "Every dated episode, oldest first. Merges TheTVDB/TMDb with RÚV air dates. Episodes without an air date and specials (season 0) are not included.",
                "operationId": "b5cd7e09b6e151ffe3255c591fffe429",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "season",
                        "in": "query",
                        "description": "Only this season.",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Episode list"
                    },
                    "404": {
                        "description": "Not found (or not a series)"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/episodes/upcoming": {
            "get": {
                "tags": [
                    "TV"
                ],
                "summary": "Episode calendar",
                "description": "Episodes airing in a date window across all series (or the ones you pass), oldest first. Each item carries its series and the services it streams on.",
                "operationId": "d9dd07ff1b2b5c26ef777691198bad8f",
                "parameters": [
                    {
                        "name": "from",
                        "in": "query",
                        "description": "YYYY-MM-DD, default today (Iceland). Use a past date for \"recently aired\".",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "days",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 7,
                            "maximum": 31
                        }
                    },
                    {
                        "name": "series",
                        "in": "query",
                        "description": "Comma-separated series ids (max 100).",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "provider",
                        "in": "query",
                        "description": "Only series currently on these services, e.g. `ruv,siminn`.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "icelandic",
                        "in": "query",
                        "description": "`1` = only Icelandic productions.",
                        "schema": {
                            "type": "integer",
                            "enum": [
                                0,
                                1
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Episodes in the window"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/showtimes": {
            "get": {
                "tags": [
                    "Showtimes"
                ],
                "summary": "Cinema showtimes for a date",
                "description": "Movies showing in cinemas on a given day, each with its schedule grouped by cinema. Pass `date` (YYYY-MM-DD) or `offset` (whole days from today). Ports 1.1/showtimes_by_date.",
                "operationId": "07c133d8599434d26d6d695be2809d84",
                "parameters": [
                    {
                        "name": "date",
                        "in": "query",
                        "description": "YYYY-MM-DD (Iceland time). Overrides offset.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "description": "Whole days from today.",
                        "schema": {
                            "type": "integer",
                            "default": 0
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Showtimes for the day"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/streaming/providers": {
            "get": {
                "tags": [
                    "Streaming"
                ],
                "summary": "Streaming services in Iceland",
                "description": "Every service we track, with logo and how many titles are on it right now.",
                "operationId": "67ac161ff14a4f76dbd0b293d32dbe84",
                "responses": {
                    "200": {
                        "description": "List of providers"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/streaming": {
            "get": {
                "tags": [
                    "Streaming"
                ],
                "summary": "Everything streaming in Iceland right now",
                "description": "One item per title with all its current offers. Paginated.",
                "operationId": "9fb967bda96402087a9d313682ce1f53",
                "parameters": [
                    {
                        "name": "provider",
                        "in": "query",
                        "description": "Comma-separated service ids (see /streaming/providers), e.g. `netflix,ruv`.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "description": "`movie` or `series`.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "movie",
                                "series"
                            ]
                        }
                    },
                    {
                        "name": "subscription",
                        "in": "query",
                        "description": "`1` = only subscription/free offers (no rentals).",
                        "schema": {
                            "type": "integer",
                            "enum": [
                                0,
                                1
                            ]
                        }
                    },
                    {
                        "name": "icelandic",
                        "in": "query",
                        "description": "`1` = only Icelandic productions.",
                        "schema": {
                            "type": "integer",
                            "enum": [
                                0,
                                1
                            ]
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "description": "`popular` (IMDb votes, default), `newest` (arrival) or `rating`.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "popular",
                                "newest",
                                "rating"
                            ]
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 1
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 25,
                            "maximum": 100
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "A page of titles"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/streaming/new": {
            "get": {
                "tags": [
                    "Streaming"
                ],
                "summary": "New on streaming",
                "description": "Titles that arrived on an Icelandic service in the last `days` days, newest first. `firstSeen` is the first night we saw the title there.",
                "operationId": "2e3c915e0061961297a2fc29cfd6e83b",
                "parameters": [
                    {
                        "name": "days",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 30,
                            "maximum": 90
                        }
                    },
                    {
                        "name": "provider",
                        "in": "query",
                        "description": "Comma-separated service ids (see /streaming/providers), e.g. `netflix,ruv`.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "description": "`movie` or `series`.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "movie",
                                "series"
                            ]
                        }
                    },
                    {
                        "name": "subscription",
                        "in": "query",
                        "description": "`1` = only subscription/free offers (no rentals).",
                        "schema": {
                            "type": "integer",
                            "enum": [
                                0,
                                1
                            ]
                        }
                    },
                    {
                        "name": "icelandic",
                        "in": "query",
                        "description": "`1` = only Icelandic productions.",
                        "schema": {
                            "type": "integer",
                            "enum": [
                                0,
                                1
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Newly arrived titles"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/streaming/leaving": {
            "get": {
                "tags": [
                    "Streaming"
                ],
                "summary": "Leaving streaming soon",
                "description": "Titles whose provider end date falls within the next `days` days, soonest first. Only services that publish end dates (MotN providers, Síminn, SÝN) appear here.",
                "operationId": "02cbc93a9a4bfaf9b755ad333898e59e",
                "parameters": [
                    {
                        "name": "days",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 14,
                            "maximum": 60
                        }
                    },
                    {
                        "name": "provider",
                        "in": "query",
                        "description": "Comma-separated service ids (see /streaming/providers), e.g. `netflix,ruv`.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "description": "`movie` or `series`.",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "movie",
                                "series"
                            ]
                        }
                    },
                    {
                        "name": "subscription",
                        "in": "query",
                        "description": "`1` = only subscription/free offers (no rentals).",
                        "schema": {
                            "type": "integer",
                            "enum": [
                                0,
                                1
                            ]
                        }
                    },
                    {
                        "name": "icelandic",
                        "in": "query",
                        "description": "`1` = only Icelandic productions.",
                        "schema": {
                            "type": "integer",
                            "enum": [
                                0,
                                1
                            ]
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Titles leaving soon"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/theaters": {
            "get": {
                "tags": [
                    "Theaters"
                ],
                "summary": "List theaters",
                "description": "All cinemas with contact and location details. Ports api/theater_list.",
                "operationId": "0f2e891fd6e487dd3d042929195c9630",
                "responses": {
                    "200": {
                        "description": "Theater list"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        },
        "/upcoming": {
            "get": {
                "tags": [
                    "Movies"
                ],
                "summary": "Upcoming cinema releases",
                "description": "Movies with an Icelandic cinema premiere date in the future, soonest first. Ports 1.1/upcoming.",
                "operationId": "b2449971fca6752abbda226aaee407e7",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "schema": {
                            "type": "integer",
                            "default": 50,
                            "maximum": 200
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Upcoming releases"
                    }
                },
                "security": [
                    {
                        "ApiKey": []
                    }
                ]
            }
        }
    },
    "components": {
        "securitySchemes": {
            "ApiKey": {
                "type": "http",
                "description": "Partner API key (also accepted as ?key=<key>).",
                "scheme": "bearer"
            },
            "UserToken": {
                "type": "apiKey",
                "description": "Per-user token for /me/* routes. Send alongside the X-User-Id header.",
                "name": "X-User-Token",
                "in": "header"
            }
        }
    },
    "tags": [
        {
            "name": "Movies",
            "description": "Movie catalogue"
        },
        {
            "name": "Showtimes",
            "description": "Cinema schedules"
        },
        {
            "name": "Streaming",
            "description": "What is on Icelandic streaming services (Netflix, Disney+, Prime, Apple TV+, Síminn, SÝN, RÚV, Crunchyroll) — new arrivals and titles leaving soon"
        },
        {
            "name": "TV",
            "description": "TV series, seasons and episode air dates (TheTVDB + RÚV)"
        },
        {
            "name": "Persons",
            "description": "Cast & crew"
        },
        {
            "name": "Lists",
            "description": "Curated movie lists"
        },
        {
            "name": "Theaters",
            "description": "Cinemas"
        },
        {
            "name": "Search",
            "description": "Title search"
        },
        {
            "name": "Auth",
            "description": "Login, registration & session tokens"
        },
        {
            "name": "Me",
            "description": "Signed-in user actions (watchlist, status)"
        }
    ]
}