Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/raczkodavid/Tikera/llms.txt

Use this file to discover all available pages before exploring further.

The Movies API lets you retrieve the full cinema catalog and, for authenticated admins, manage movie records. All movie responses include nested screening data with seat availability.

GET /api/movies

Returns all movies. Optionally filter by week using the week_number query parameter.
This endpoint is public — no authentication required.
Query parameters
week_number
integer
ISO week number (1–53). When provided, only movies with screenings in that week are returned, and the screenings array is filtered to that week.
Example
curl http://localhost:8000/api/movies
curl http://localhost:8000/api/movies?week_number=20
Response
{
  "status": "success",
  "message": "OK",
  "data": [
    {
      "id": 1,
      "title": "Inception",
      "description": "A thief who steals corporate secrets...",
      "image_path": "https://example.com/poster.jpg",
      "duration": 148,
      "genre": "Sci-Fi",
      "release_year": 2010,
      "screenings": [
        {
          "id": 5,
          "room": { "rows": 10, "seatsPerRow": 10 },
          "start_time": "18:00",
          "date": "2025-05-15",
          "week_number": 20,
          "week_day": 4,
          "bookings": [{ "row": 2, "seat": 4 }]
        }
      ]
    }
  ]
}
The bookings array in each screening lists seats that are already taken (status not cancelled).

GET /api/movies/week

Returns movies for a specific week. The week_number query parameter is required.
This endpoint is public — no authentication required.
week_number
integer
required
ISO week number (1–53).
curl "http://localhost:8000/api/movies/week?week_number=20"
Returns the same shape as GET /api/movies?week_number={n}.

GET /api/movies/

Returns a single movie with all its screenings.
Public — no authentication required.
curl http://localhost:8000/api/movies/1
Response shape is the same single-movie object shown above.

POST /api/movies

Creates a new movie. Requires authentication (admin).
title
string
required
Movie title. Maximum 255 characters.
description
string
required
Full movie description or synopsis.
image_path
string
required
Publicly accessible URL for the movie poster image.
duration
integer
required
Runtime in minutes. Minimum: 1.
genre
string
required
Genre label (e.g. "Action", "Drama"). Maximum 255 characters.
release_year
integer
required
Four-digit release year between 1900 and next calendar year.
curl -X POST http://localhost:8000/api/movies \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Inception",
    "description": "A thief who steals corporate secrets through dreams.",
    "image_path": "https://example.com/inception.jpg",
    "duration": 148,
    "genre": "Sci-Fi",
    "release_year": 2010
  }'
Returns 201 with the created movie object.

PUT /api/movies/

Updates an existing movie. Requires authentication (admin). All fields are optional — only send the fields you want to change.
title
string
Max 255 characters.
description
string
Updated synopsis.
image_path
string
Valid URL to poster image.
duration
integer
Runtime in minutes (min: 1).
genre
string
Genre label (max 255 chars).
release_year
integer
Year between 1900 and next year.
curl -X PUT http://localhost:8000/api/movies/1 \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{ "duration": 155 }'
Returns 200 with the updated movie object.

DELETE /api/movies/

Deletes a movie and its associated screenings. Requires authentication (admin).
Deleting a movie also removes all its screenings. This action cannot be undone.
curl -X DELETE http://localhost:8000/api/movies/1 \
  -H "Authorization: Bearer {token}"
Returns 204 No Content on success.

Build docs developers (and LLMs) love