Discover/IMSDb API
live

IMSDb APIimsdb.com

Access IMSDb's full screenplay catalog via API. Retrieve script text, metadata, genres, ratings, comments, and TV transcripts across thousands of titles.

Endpoint health
verified 7d ago
get_all_scripts
search_scripts
get_script_comments
get_tv_transcripts
get_script_text
9/9 passing latest checkself-healing
Endpoints
9
Updated
22d ago

What is the IMSDb API?

The IMSDb API exposes 9 endpoints covering the complete Internet Movie Script Database catalog — from full screenplay text to editorial ratings, genre filters, and user comments. The get_script_text endpoint returns the entire screenplay as a plain string, while get_script_details delivers structured metadata including writer credits, script date, user and editorial ratings, and a poster image URL for a given title.

Try it

No input parameters required.

api.parse.bot/scraper/823d3348-58ab-446b-8507-af14ca2a34ed/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/823d3348-58ab-446b-8507-af14ca2a34ed/get_all_scripts' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace imsdb-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""IMSDb SDK — search scripts, read metadata, fetch screenplays, browse comments."""
from parse_apis.imsdb_scraper_api import IMSDb, Genre, ScriptNotFound

client = IMSDb()

# Search for scripts by keyword and browse results
for script in client.scriptsummaries.search(query="Matrix", limit=5):
    print(script.title, script.script_page_url)

# Get full details for a specific script by title
detail = client.scripts.get(title="Matrix, The")
print(detail.title, detail.user_rating, detail.genres, detail.script_date)

# Read the full screenplay text via the detail instance
screenplay = detail.text()
print(screenplay.script_url, len(screenplay.screenplay))

# Browse user comments on the script
for comment in detail.comments.list(limit=3):
    print(comment.username, comment.rating, comment.comment_text[:60])

# Filter scripts by genre using the Genre enum
for entry in client.scriptsummaries.by_genre(genre=Genre.THRILLER, limit=3):
    print(entry.title, entry.script_page_url)

# Handle a missing script gracefully
try:
    client.scripts.get(title="Nonexistent Movie Title XYZ")
except ScriptNotFound as exc:
    print(f"Script not found: {exc.title}")

print("exercised: scriptsummaries.search / scripts.get / text / comments.list / by_genre")
All endpoints · 9 totalmissing one? ·

Get the complete catalog of all scripts on IMSDb. Returns every script with title, writers, draft info, and page URL. Single-page response containing the full alphabetical listing.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "items": "array of script catalog entries with title, writers, draftInfo, and scriptPageUrl"
  },
  "sample": {
    "data": {
      "items": [
        {
          "title": "10 Things I Hate About You",
          "writers": [
            "Karen McCullah Lutz",
            "Kirsten Smith",
            "William Shakespeare"
          ],
          "draftInfo": "(1997-11 Draft)",
          "scriptPageUrl": "https://imsdb.com/Movie Scripts/10 Things I Hate About You Script.html"
        },
        {
          "title": "12",
          "writers": [
            "Lawrence Bridges"
          ],
          "draftInfo": "(Undated Draft)",
          "scriptPageUrl": "https://imsdb.com/Movie Scripts/12 Script.html"
        }
      ]
    },
    "status": "success"
  }
}

About the IMSDb API

Catalog and Search

get_all_scripts returns the full site catalog as an array of objects, each with title, writers, draftInfo, and scriptPageUrl. For narrower retrieval, get_scripts_by_letter accepts a single character (AZ or # for numeric titles) and returns matching entries. search_scripts takes a free-text query and returns title/URL pairs for any matching scripts. get_scripts_by_genre filters by genre name — valid values include Action, Comedy, Drama, Horror, Film-Noir, Musical, and others — returning the same title/URL shape.

Script Details and Full Text

get_script_details accepts a title string formatted as it appears on IMSDb (e.g. 'Matrix, The') and returns genres, writers, scriptDate, userRating, imsdbRating, imsdbOpinion, scriptReadUrl, posterImageUrl, and movieReleaseDate. Both rating fields are numeric out of 10, or null when not present. To retrieve the actual screenplay, pass that scriptReadUrl value as the read_url parameter to get_script_text — this is more reliable than constructing the URL from a title with special characters. The response includes screenplay as a single string containing the full script.

Community Data and Latest Additions

get_script_comments retrieves per-user comments for a title, returning username, commentText, and an integer rating out of 10 for each entry. get_latest_scripts requires no input and returns two arrays: lastAdded (with poster images) and newestReleases, both reflecting what the IMSDb homepage currently surfaces. get_tv_transcripts returns a list of TV show names and their transcript page URLs available from the site.

Coverage Notes

Titles follow IMSDb's own naming conventions — articles like "The" are moved to the end (e.g. 'Dark Knight, The'). Passing the title in any other format to get_script_details or get_script_comments may return no results. The screenplay field in get_script_text is raw text as formatted on the page; it is not parsed into scenes, dialogue blocks, or structured acts.

Reliability & maintenanceVerified

The IMSDb API is a managed, monitored endpoint for imsdb.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when imsdb.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official imsdb.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
7d ago
Latest check
9/9 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a screenplay search tool that filters by genre using get_scripts_by_genre and displays metadata from get_script_details
  • Train NLP or language models on raw screenplay text retrieved via get_script_text
  • Track newly added scripts by polling get_latest_scripts and alerting on new entries in the lastAdded array
  • Aggregate user and editorial ratings across a genre by combining get_scripts_by_genre with get_script_details rating fields
  • Analyze writer credits across the full catalog using get_all_scripts and the writers array on each entry
  • Build a comment sentiment analysis dataset from get_script_comments using commentText and paired rating values
  • Populate a film reference app with poster images and release dates using posterImageUrl and movieReleaseDate from get_script_details
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does IMSDb have an official developer API?+
No. IMSDb does not publish an official developer API or documented data access layer. This Parse API is the structured way to access the catalog programmatically.
What does `get_script_details` return versus `get_script_text`?+
get_script_details returns metadata: genres, writer credits, script date, user and editorial ratings (each out of 10), an opinion blurb, poster image URL, and movie release date — but no script content. get_script_text returns the actual screenplay string. The two endpoints are designed to be used together: retrieve scriptReadUrl from get_script_details, then pass it as read_url to get_script_text for reliable full-text retrieval.
Are individual scenes, dialogue blocks, or act breaks returned as structured data?+
Not currently. The screenplay field from get_script_text is a single raw text string; the API does not parse it into structured components like scenes, characters, or dialogue lines. You can fork this API on Parse and revise it to add a parsing layer that segments screenplay text into structured fields.
Does the API cover every script on IMSDb, or only a subset?+
get_all_scripts returns the full catalog as listed on the site's alphabetical index. Coverage depends entirely on what IMSDb has added — some films have no script available, in which case scriptReadUrl in get_script_details will be null. TV coverage is limited to transcripts listed via get_tv_transcripts; individual episode text is not currently returned as structured data. You can fork this API on Parse and revise it to add episode-level transcript endpoints.
How should I format the `title` parameter for `get_script_details` and `get_script_comments`?+
IMSDb moves leading articles to the end of the title, separated by a comma — so 'The Matrix' becomes 'Matrix, The'. Using the title format returned by get_all_scripts or search_scripts is the safest approach, since those endpoints reflect the exact strings IMSDb uses internally.
Page content last updated . Spec covers 9 endpoints from imsdb.com.
Related APIs in EntertainmentSee all →
simplyscripts.com API
Search and browse thousands of movie, TV, radio, and unproduced scripts from SimplyScripts.com, including Oscar-winning screenplays and the latest additions. Filter by genre, alphabetically, or by script type to find exactly what you're looking for.
imdb.com API
Search and retrieve comprehensive IMDb movie information including ratings, genres, cast, crew, and box office data in one place. Get full cast and crew details alongside plot summaries and financial insights for any movie title.
tmdb.org API
Search for movies and TV shows to discover details like cast, crew, reviews, images, videos, and where to watch them. Get information about actors, browse trending and popular titles, and access comprehensive metadata for entertainment planning.
rottentomatoes.com API
Search for movies and TV shows, get detailed information like ratings and reviews, and browse curated collections to discover what to watch. Access comprehensive Rotten Tomatoes data including critic and audience scores, plot details, and user reviews all in one place.
editorial.rottentomatoes.com API
Search for movies and TV shows, browse ratings and reviews from critics and audiences, and discover celebrity filmographies and entertainment news. Get detailed information about films, shows, and entertainment professionals all in one place.
mymovies.it API
Search for movies and showtimes across Italian cinemas, find what's playing near you by city, and discover detailed information about films, cast members, and box office rankings. Browse upcoming releases and get comprehensive cinema details to plan your movie nights.
metacritic.com API
Search for games, movies, and TV shows, then retrieve detailed metadata, critic and user reviews, and ranked lists from Metacritic. Access comprehensive rating information and review data to discover top-rated entertainment content across all media types.
filmaffinity.com API
Search FilmAffinity's film database by title, director, genre, year, and more. Retrieve detailed movie information including cast, crew, synopsis, ratings, and user reviews. Access top-rated lists, box office rankings, theatrical and streaming releases, and full filmographies for cast and crew members.
IMSDb API – Movie Scripts & Screenplays · Parse