/imdb-api

Serverless IMDB API powered by Cloudflare Worker

Primary LanguageJavaScriptApache License 2.0Apache-2.0

IMDB API

Incidents 🔔

1. November 27, 2023 - Bombarded with DDos and DoS

Attention: Due to a series of DDoS and DoS attacks targeting our free server, I have implemented stringent security measures. Upon reviewing the server logs, I identified that numerous production applications are directly utilizing the imdb-api.projects.thetuhin.com endpoint. I urge these application owners to deploy their own Cloudflare Workers to mitigate risk and enhance security.

As part of my response, I have established DDoS protection rules. While these measures are in place, legitimate users may encounter a security challenge to verify their status as human users. Please note that IP addresses originating from Ovh and Hetzner Cloud services have been permanently blocked as a precaution.

I appreciate your understanding and cooperation.

Features 🪶

  • Search titles
  • Search by IMDB ID
  • Cacheable Result
  • High Performance
  • Get episode information
  • Get all reviews with full pagination supported

Installation 📦

If you anticipate sending a large number of requests, it is recommended that you deploy your own Cloudflare worker. Installation is pretty easy and straight forward. Click the button below to get started.

Deploy to Cloudflare Workers

After deployed, map the worker to a Domain Name to configure cache. Only Workers deployed to custom domains have access to functional cache operations.

Run with docker 🐋

  • Clone this repository
  • Build the image
    docker build -t imdb-api .
    
  • Start the process (Deatached)
    docker run -p 3000:3000 -it -d imdb-api
    

API 📡

Run in Postman

Endpoint Method Description Example
/search?query={query} GET Search titles by title Try It
/title/{imdb_id} GET Get details of a title Try It
/reviews/{imdb_id}?option={helpfulness|date|votes|rating}&sortOrder={asc|desc} GET Get reviews of a title Try It
/title/{imdb_id}/season/{season_id} GET (New) Fetch a single season of a series Try It
/user/{user_id} GET (New) Fetch an user's info Try It
/user/{user_id}/ratings?ratingFilter={1-10}&sort={most_recent|oldest|top_rated|worst_rated} GET (New) Fetch an user's ratings and reviews Try It

License 🎯

Have a good day 🤘