imsdb.com APIimsdb.com ↗
Access IMSDb's full screenplay catalog via API. Retrieve script text, metadata, genres, ratings, comments, and TV transcripts across thousands of titles.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/823d3348-58ab-446b-8507-af14ca2a34ed/get_all_scripts' \ -H 'X-API-Key: $PARSE_API_KEY'
Get alphabetical listing of all scripts on the site. Returns the complete catalog with titles, writers, draft info, and page URLs.
No input parameters required.
{
"type": "array",
"fields": {
"title": "string - script title",
"writers": "array of writer names",
"draftInfo": "string - draft date or type in parentheses",
"scriptPageUrl": "string - URL to the script's detail page"
},
"sample": {
"data": [
{
"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"
}
],
"status": "success"
}
}About the imsdb.com 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.
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 (A–Z 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.
- Build a screenplay search tool that filters by genre using
get_scripts_by_genreand displays metadata fromget_script_details - Train NLP or language models on raw screenplay text retrieved via
get_script_text - Track newly added scripts by polling
get_latest_scriptsand alerting on new entries in thelastAddedarray - Aggregate user and editorial ratings across a genre by combining
get_scripts_by_genrewithget_script_detailsrating fields - Analyze writer credits across the full catalog using
get_all_scriptsand thewritersarray on each entry - Build a comment sentiment analysis dataset from
get_script_commentsusingcommentTextand pairedratingvalues - Populate a film reference app with poster images and release dates using
posterImageUrlandmovieReleaseDatefromget_script_details
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 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.
Does IMSDb have an official developer API?+
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?+
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`?+
'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.