{"openapi":"3.1.0","info":{"title":"Cinema Watch API","version":"1.0.0","description":"Movie, TV, actor and genre data. Authenticate with an API key in the X-Api-Key header. Every response is JSON shaped as { success, data, error?, pagination? }.","contact":{"email":"hello@cinema-watch.com"}},"servers":[{"url":"https://api.cinema-watch.com/api"}],"security":[{"ApiKeyAuth":[]}],"tags":[{"name":"Authentication"},{"name":"Search"},{"name":"Movies"},{"name":"TV"},{"name":"Actors"},{"name":"Genres"}],"paths":{"/v1/validate":{"get":{"operationId":"validateKey","summary":"Validate API Key","description":"Check that an API key is valid and active.","tags":["Authentication"],"parameters":[],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"},"example":{"success":true,"data":[]}}}},"401":{"description":"Missing, invalid, inactive or expired API key","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Unauthorized API Key"}}}},"429":{"description":"Rate limit or monthly quota exceeded. See the Retry-After header.","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Rate limit exceeded: 10 requests per minute on the Free plan."}}}}}}},"/v1/movie/search":{"get":{"operationId":"searchMovie","summary":"Search Movies","description":"Search movies by title.","tags":["Search"],"parameters":[{"name":"search","in":"query","required":true,"description":"Search term to filter movies, 2–100 characters. Alias: q","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"Page number for pagination","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"description":"Number of items per page (max 100)","schema":{"type":"integer","minimum":1,"default":10}}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"},"example":{"success":true,"pagination":{"page":1,"limit":10,"total":1,"totalPages":1},"data":[{"id":16,"imdb_id":"tt0468569","title":"The Dark Knight","description":"Batman raises the stakes in his war on crime when the Joker plunges Gotham City into anarchy.","runtime":"152","budget":"185000000","revenue":"1004558444","poster":"https://…/poster.jpg","backdrop":"https://…/backdrop.jpg","created_at":"2025-01-12T18:04:11.000Z"}]}}}},"400":{"description":"Invalid parameter","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Invalid 'search' parameter. It must be 2–100 characters."}}}},"401":{"description":"Missing, invalid, inactive or expired API key","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Unauthorized API Key"}}}},"429":{"description":"Rate limit or monthly quota exceeded. See the Retry-After header.","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Rate limit exceeded: 10 requests per minute on the Free plan."}}}}}}},"/v1/tv/search":{"get":{"operationId":"searchTv","summary":"Search TV Shows","description":"Search TV shows by title.","tags":["Search"],"parameters":[{"name":"search","in":"query","required":true,"description":"Search term to filter TV shows, 2–100 characters. Alias: q","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"Page number for pagination","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"description":"Number of items per page (max 100)","schema":{"type":"integer","minimum":1,"default":10}}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"},"example":{"success":true,"pagination":{"page":1,"limit":10,"total":1,"totalPages":1},"data":[{"id":4,"imdb_id":"tt0903747","title":"Breaking Bad","description":"A chemistry teacher diagnosed with cancer turns to making methamphetamine.","poster":"https://…/poster.jpg","backdrop":"https://…/backdrop.jpg","created_at":"2025-01-12T18:04:11.000Z"}]}}}},"400":{"description":"Invalid parameter","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Invalid 'search' parameter. It must be 2–100 characters."}}}},"401":{"description":"Missing, invalid, inactive or expired API key","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Unauthorized API Key"}}}},"429":{"description":"Rate limit or monthly quota exceeded. See the Retry-After header.","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Rate limit exceeded: 10 requests per minute on the Free plan."}}}}}}},"/v1/actor/search":{"get":{"operationId":"searchActor","summary":"Search Actors","description":"Search actors by name. Every word must match a first, middle or last name, so 'heath ledger' works.","tags":["Search"],"parameters":[{"name":"search","in":"query","required":true,"description":"Search term to filter actors, 2–100 characters. Alias: q","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"Page number for pagination","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"description":"Number of items per page (max 100)","schema":{"type":"integer","minimum":1,"default":10}}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"},"example":{"success":true,"pagination":{"page":1,"limit":10,"total":1,"totalPages":1},"data":[{"id":7,"first_name":"Heath","middle_name":null,"last_name":"Ledger","dob":"1979-04-04","profile_image":"https://…/profile.jpg"}]}}}},"400":{"description":"Invalid parameter","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Invalid 'search' parameter. It must be 2–100 characters."}}}},"401":{"description":"Missing, invalid, inactive or expired API key","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Unauthorized API Key"}}}},"429":{"description":"Rate limit or monthly quota exceeded. See the Retry-After header.","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Rate limit exceeded: 10 requests per minute on the Free plan."}}}}}}},"/v1/movie":{"get":{"operationId":"listMovies","summary":"List Movies","description":"List movies, newest first by default. Filter by genre and change the order.","tags":["Movies"],"parameters":[{"name":"page","in":"query","required":false,"description":"Page number for pagination","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"description":"Number of items per page (max 100)","schema":{"type":"integer","minimum":1,"default":10}},{"name":"genre","in":"query","required":false,"description":"Only return titles in this genre ID","schema":{"type":"integer","minimum":1}},{"name":"sort","in":"query","required":false,"description":"newest, oldest or title","schema":{"type":"string","default":"newest"}}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"},"example":{"success":true,"pagination":{"page":1,"limit":10,"total":1,"totalPages":1},"data":[{"id":16,"imdb_id":"tt0468569","title":"The Dark Knight","description":"Batman raises the stakes in his war on crime when the Joker plunges Gotham City into anarchy.","runtime":"152","budget":"185000000","revenue":"1004558444","poster":"https://…/poster.jpg","backdrop":"https://…/backdrop.jpg","created_at":"2025-01-12T18:04:11.000Z"}]}}}},"400":{"description":"Invalid parameter","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Invalid 'sort' parameter. Use newest, oldest or title."}}}},"401":{"description":"Missing, invalid, inactive or expired API key","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Unauthorized API Key"}}}},"429":{"description":"Rate limit or monthly quota exceeded. See the Retry-After header.","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Rate limit exceeded: 10 requests per minute on the Free plan."}}}}}}},"/v1/movie/{id}":{"get":{"operationId":"getMovieById","summary":"Get a Movie by ID","description":"Get one movie with its genres, release dates and images.","tags":["Movies"],"parameters":[{"name":"id","in":"path","required":true,"description":"The movie ID (path parameter)","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"},"example":{"success":true,"data":{"id":16,"imdb_id":"tt0468569","title":"The Dark Knight","description":"Batman raises the stakes in his war on crime when the Joker plunges Gotham City into anarchy.","runtime":"152","budget":"185000000","revenue":"1004558444","poster":"https://…/poster.jpg","backdrop":"https://…/backdrop.jpg","created_at":"2025-01-12T18:04:11.000Z","genres":[{"id":28,"name":"Action"},{"id":80,"name":"Crime"}],"release_dates":[{"region":"US","release_date":"2008-07-18"}],"images":[{"image_url":"https://…/still.jpg","image_type":"backdrop","width":1920,"height":1080,"display_order":0}]}}}}},"400":{"description":"Invalid parameter","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Invalid movie ID. It must be a positive integer."}}}},"401":{"description":"Missing, invalid, inactive or expired API key","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Unauthorized API Key"}}}},"404":{"description":"Not found","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Not found"}}}},"429":{"description":"Rate limit or monthly quota exceeded. See the Retry-After header.","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Rate limit exceeded: 10 requests per minute on the Free plan."}}}}}}},"/v1/movie/{id}/cast":{"get":{"operationId":"getMovieCast","summary":"Get a Movie's Cast","description":"Get the actors in a movie.","tags":["Movies"],"parameters":[{"name":"id","in":"path","required":true,"description":"The movie ID (path parameter)","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"},"example":{"success":true,"data":[{"id":7,"first_name":"Heath","middle_name":null,"last_name":"Ledger","dob":"1979-04-04","profile_image":"https://…/profile.jpg"}]}}}},"400":{"description":"Invalid parameter","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Invalid movie ID. It must be a positive integer."}}}},"401":{"description":"Missing, invalid, inactive or expired API key","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Unauthorized API Key"}}}},"404":{"description":"Not found","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Not found"}}}},"429":{"description":"Rate limit or monthly quota exceeded. See the Retry-After header.","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Rate limit exceeded: 10 requests per minute on the Free plan."}}}}}}},"/v1/tv":{"get":{"operationId":"listTv","summary":"List TV Shows","description":"List TV shows, newest first by default. Filter by genre and change the order.","tags":["TV"],"parameters":[{"name":"page","in":"query","required":false,"description":"Page number for pagination","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"description":"Number of items per page (max 100)","schema":{"type":"integer","minimum":1,"default":10}},{"name":"genre","in":"query","required":false,"description":"Only return titles in this genre ID","schema":{"type":"integer","minimum":1}},{"name":"sort","in":"query","required":false,"description":"newest, oldest or title","schema":{"type":"string","default":"newest"}}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"},"example":{"success":true,"pagination":{"page":1,"limit":10,"total":1,"totalPages":1},"data":[{"id":4,"imdb_id":"tt0903747","title":"Breaking Bad","description":"A chemistry teacher diagnosed with cancer turns to making methamphetamine.","poster":"https://…/poster.jpg","backdrop":"https://…/backdrop.jpg","created_at":"2025-01-12T18:04:11.000Z"}]}}}},"400":{"description":"Invalid parameter","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Invalid 'sort' parameter. Use newest, oldest or title."}}}},"401":{"description":"Missing, invalid, inactive or expired API key","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Unauthorized API Key"}}}},"429":{"description":"Rate limit or monthly quota exceeded. See the Retry-After header.","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Rate limit exceeded: 10 requests per minute on the Free plan."}}}}}}},"/v1/tv/{id}":{"get":{"operationId":"getTvById","summary":"Get a TV Show by ID","description":"Get one TV show with its genres, images and a list of seasons.","tags":["TV"],"parameters":[{"name":"id","in":"path","required":true,"description":"The TV show ID (path parameter)","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"},"example":{"success":true,"data":{"id":4,"imdb_id":"tt0903747","title":"Breaking Bad","description":"A chemistry teacher diagnosed with cancer turns to making methamphetamine.","poster":"https://…/poster.jpg","backdrop":"https://…/backdrop.jpg","created_at":"2025-01-12T18:04:11.000Z","genres":[{"id":18,"name":"Drama"}],"images":[{"image_url":"https://…/still.jpg","image_type":"backdrop","width":1920,"height":1080,"display_order":0}],"seasons":[{"season_number":1,"episode_count":7},{"season_number":2,"episode_count":13}]}}}}},"400":{"description":"Invalid parameter","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Invalid TV ID. It must be a positive integer."}}}},"401":{"description":"Missing, invalid, inactive or expired API key","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Unauthorized API Key"}}}},"404":{"description":"Not found","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Not found"}}}},"429":{"description":"Rate limit or monthly quota exceeded. See the Retry-After header.","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Rate limit exceeded: 10 requests per minute on the Free plan."}}}}}}},"/v1/tv/{id}/cast":{"get":{"operationId":"getTvCast","summary":"Get a TV Show's Cast","description":"Get the actors in a TV show.","tags":["TV"],"parameters":[{"name":"id","in":"path","required":true,"description":"The TV show ID (path parameter)","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"},"example":{"success":true,"data":[{"id":7,"first_name":"Heath","middle_name":null,"last_name":"Ledger","dob":"1979-04-04","profile_image":"https://…/profile.jpg"}]}}}},"400":{"description":"Invalid parameter","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Invalid TV ID. It must be a positive integer."}}}},"401":{"description":"Missing, invalid, inactive or expired API key","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Unauthorized API Key"}}}},"404":{"description":"Not found","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Not found"}}}},"429":{"description":"Rate limit or monthly quota exceeded. See the Retry-After header.","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Rate limit exceeded: 10 requests per minute on the Free plan."}}}}}}},"/v1/tv/{id}/episodes":{"get":{"operationId":"getTvEpisodes","summary":"Get a TV Show's Episodes","description":"Get episodes ordered by season and episode number. Filter to one season.","tags":["TV"],"parameters":[{"name":"id","in":"path","required":true,"description":"The TV show ID (path parameter)","schema":{"type":"integer","minimum":1}},{"name":"season","in":"query","required":false,"description":"Only return episodes from this season","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"},"example":{"success":true,"data":[{"id":101,"season_number":1,"episode_number":1,"title":"Pilot","description":"Walter White makes a life-changing decision.","air_date":"2008-01-20","runtime_minutes":58,"thumbnail_url":"https://…/still.jpg"}]}}}},"400":{"description":"Invalid parameter","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Invalid 'season' parameter. It must be a positive integer."}}}},"401":{"description":"Missing, invalid, inactive or expired API key","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Unauthorized API Key"}}}},"404":{"description":"Not found","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Not found"}}}},"429":{"description":"Rate limit or monthly quota exceeded. See the Retry-After header.","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Rate limit exceeded: 10 requests per minute on the Free plan."}}}}}}},"/v1/actor":{"get":{"operationId":"listActors","summary":"List Actors","description":"List actors alphabetically by last name.","tags":["Actors"],"parameters":[{"name":"page","in":"query","required":false,"description":"Page number for pagination","schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"description":"Number of items per page (max 100)","schema":{"type":"integer","minimum":1,"default":10}}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"},"example":{"success":true,"pagination":{"page":1,"limit":10,"total":1,"totalPages":1},"data":[{"id":7,"first_name":"Heath","middle_name":null,"last_name":"Ledger","dob":"1979-04-04","profile_image":"https://…/profile.jpg"}]}}}},"400":{"description":"Invalid parameter","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Invalid 'page' parameter. It must be a positive integer."}}}},"401":{"description":"Missing, invalid, inactive or expired API key","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Unauthorized API Key"}}}},"429":{"description":"Rate limit or monthly quota exceeded. See the Retry-After header.","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Rate limit exceeded: 10 requests per minute on the Free plan."}}}}}}},"/v1/actor/{id}":{"get":{"operationId":"getActorById","summary":"Get an Actor by ID","description":"Get one actor with their images.","tags":["Actors"],"parameters":[{"name":"id","in":"path","required":true,"description":"The actor ID (path parameter)","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"},"example":{"success":true,"data":{"id":7,"first_name":"Heath","middle_name":null,"last_name":"Ledger","dob":"1979-04-04","profile_image":"https://…/profile.jpg","net_worth":"20000000","images":[{"image_url":"https://…/profile.jpg","image_type":"profile","width":800,"height":1200,"display_order":0}]}}}}},"400":{"description":"Invalid parameter","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Invalid actor ID. It must be a positive integer."}}}},"401":{"description":"Missing, invalid, inactive or expired API key","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Unauthorized API Key"}}}},"404":{"description":"Not found","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Not found"}}}},"429":{"description":"Rate limit or monthly quota exceeded. See the Retry-After header.","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Rate limit exceeded: 10 requests per minute on the Free plan."}}}}}}},"/v1/actor/{id}/credits":{"get":{"operationId":"getActorCredits","summary":"Get an Actor's Credits","description":"Get the movies and TV shows an actor appears in.","tags":["Actors"],"parameters":[{"name":"id","in":"path","required":true,"description":"The actor ID (path parameter)","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"},"example":{"success":true,"data":{"movies":[{"id":16,"title":"The Dark Knight","poster":"https://…/poster.jpg"}],"tv":[]}}}}},"400":{"description":"Invalid parameter","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Invalid actor ID. It must be a positive integer."}}}},"401":{"description":"Missing, invalid, inactive or expired API key","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Unauthorized API Key"}}}},"404":{"description":"Not found","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Not found"}}}},"429":{"description":"Rate limit or monthly quota exceeded. See the Retry-After header.","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Rate limit exceeded: 10 requests per minute on the Free plan."}}}}}}},"/v1/genre":{"get":{"operationId":"genres","summary":"List Genres","description":"Get every genre, alphabetically. Pass a genre ID to /movie?genre= or /tv?genre= to list its titles.","tags":["Genres"],"parameters":[],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"},"example":{"success":true,"data":[{"id":28,"name":"Action"},{"id":80,"name":"Crime"}]}}}},"401":{"description":"Missing, invalid, inactive or expired API key","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Unauthorized API Key"}}}},"429":{"description":"Rate limit or monthly quota exceeded. See the Retry-After header.","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Rate limit exceeded: 10 requests per minute on the Free plan."}}}}}}},"/v1/genre/{id}":{"get":{"operationId":"getGenreById","summary":"Get a Genre by ID","description":"Get one genre.","tags":["Genres"],"parameters":[{"name":"id","in":"path","required":true,"description":"The genre ID (path parameter)","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Successful response","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Success"},"example":{"success":true,"data":{"id":28,"name":"Action"}}}}},"400":{"description":"Invalid parameter","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Invalid genre ID. It must be a positive integer."}}}},"401":{"description":"Missing, invalid, inactive or expired API key","headers":{},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Unauthorized API Key"}}}},"404":{"description":"Not found","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Not found"}}}},"429":{"description":"Rate limit or monthly quota exceeded. See the Retry-After header.","headers":{"X-RateLimit-Limit":{"description":"Requests allowed per minute.","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests left this minute.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix time (seconds) the minute window resets.","schema":{"type":"integer"}},"X-Quota-Limit":{"description":"Requests allowed this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Remaining":{"description":"Requests left this month, or \"unlimited\".","schema":{"type":"string"}},"X-Quota-Reset":{"description":"Unix time (seconds) the monthly quota resets.","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":"Rate limit exceeded: 10 requests per minute on the Free plan."}}}}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"Success":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean","const":true},"data":{},"pagination":{"$ref":"#/components/schemas/Pagination"}}},"Error":{"type":"object","required":["success","error"],"properties":{"success":{"type":"boolean","const":false},"error":{"type":"string"}}},"Pagination":{"type":"object","properties":{"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"}}}}}}