OMDb API
Open Movie Database — a lightweight IMDb-style lookup by title or IMDb ID, returning plot, ratings from IMDb/Rotten Tomatoes/Metacritic, and poster URLs. Simpler than TMDB when you only need one film's metadata.
🟢 Online · 36 ms
100%
Free key, 1,000 requests/day; poster API needs a paid tier
API key
Free alternatives (live ranking)
- Rick and Morty API — 🟢 Online · 10,000 req/day, no key, no credit card
- TMDB (The Movie Database) — 🟢 Online · Free key, unlimited for non-commercial use; commercial needs a license
- xkcd — 🟢 Online · Unlimited, no key, no credit card
Compare OMDb API with…
- OMDb API vs TMDB (The Movie Database) — Free key, unlimited for non-commercial use; commercial needs a license
Paid alternatives
- OMDb Patreon — from $1/mo for 100,000 daily
Frequently Asked Questions
Does OMDb API require an API key?
Yes, OMDb API requires a free API key. You can sign up via https://www.omdbapi.com/.
What is OMDb API's free tier?
Free key, 1,000 requests/day; poster API needs a paid tier
Is OMDb API currently online?
We check OMDb API every hour. The current status is shown at the top of this page. You can also see the 30-day uptime history in the chart above.
Implementation notes
When to use OMDb API
OMDb is the fastest path from an IMDb ID or a title string to ratings, runtime, plot, rated certificate, and cast in one flat JSON object. A free key gives 1,000 requests per day and arrives by email within a minute. Its real value is IMDb linkage: it is one of very few free endpoints where you can pass tt0111161 directly and get Rotten Tomatoes and Metacritic scores back alongside the IMDb rating in a single response. Reach for it when you already hold IMDb IDs, when you want ratings rather than artwork, or when you need a one-line enrichment step in a script and do not want to model TMDB's nested shapes. Do not reach for it as a catalog: there is no browse, no discover, no genre listing, and TV episode coverage is shallow. The common production pattern is TMDB for structure and images, OMDb for the ratings layer on top.
Common pitfalls
- Every lookup returns HTTP 200, including failures. A missing title comes back as {"Response":"False","Error":"Movie not found!"} with a 200 status, so response.ok is always true and any code branching on status codes treats a miss as a hit. Check the Response field before touching anything else in the payload.
- The data is IMDb-derived and OMDb's terms pass those constraints straight to you. Caching for your own application is fine; rebuilding a public movie database out of OMDb responses, or reselling the ratings, is not. If your product surfaces IMDb ratings to end users at any scale, read the terms before launch rather than after someone notices.
- Poster images are a separate paid product. The dedicated img.omdbapi.com endpoint requires its own Poster API subscription, and the Poster field in a normal response points at Amazon-hosted artwork whose sizing and availability you do not control — those URLs go stale and there is no fallback. If artwork matters at all, get it from TMDB.
- Nothing is typed. Released is a string like 01 Oct 1994, Runtime is 142 min, imdbVotes carries comma separators, and BoxOffice is a dollar-formatted string. Any field can also be the literal N/A rather than null or absent. Write one parser at the fetch boundary that normalizes these and maps N/A to null, or NaN will surface somewhere in your UI.
Quick start (bash)
curl -s 'https://www.omdbapi.com/?apikey=YOUR_KEY&i=tt0111161&plot=short' | jq '.Title, .imdbRating, .Ratings'
# a miss is still HTTP 200 - always inspect .Response first
curl -s 'https://www.omdbapi.com/?apikey=YOUR_KEY&t=film+that+does+not+exist' | jq '.Response, .Error' Embed this badge
Add a live status badge to your README, docs, or website.
Markdown
[](https://freeapi.watch/omdb) HTML
<a href="https://freeapi.watch/omdb"><img src="https://api.freeapi.watch/badge/omdb.svg" alt="OMDb API Status"/></a>