{
  "openapi": "3.0.1",
  "info": {
    "title": "IMDb Scraper - Movies, TV Shows, Ratings, Cast & Box Office",
    "description": "Scrape IMDb movies, TV shows & celebrities: ratings, vote counts, box office, full cast & crew, episodes, awards, keywords & reviews. Search, discover by filters, charts (Top 250) & rating/popularity monitor. Keyless, no login.",
    "version": "0.1",
    "x-build-id": "dZi9VJSZJnWe5kZNQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~imdb-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-imdb-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/scrapesage~imdb-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-imdb-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/scrapesage~imdb-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-imdb-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Keywords to search IMDb for, e.g. <code>Dune</code>, <code>Breaking Bad</code>, <code>Christopher Nolan</code>. Each keyword is searched separately. Use the <b>Search in</b> option to search movies/TV titles, people, or both. Leave empty if you only use IDs, charts, discover or Start URLs.",
            "items": {
              "type": "string"
            }
          },
          "searchType": {
            "title": "Search in",
            "enum": [
              "title",
              "name",
              "all"
            ],
            "type": "string",
            "description": "What the keywords above search: movie/TV titles, people (actors, directors, …), or both.",
            "default": "title"
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "IMDb URLs to scrape directly: title pages (<code>imdb.com/title/tt…</code>), person pages (<code>imdb.com/name/nm…</code>) or find/search pages (<code>imdb.com/find?q=…</code>). Used in addition to the keyword search.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "titleIds": {
            "title": "Title IDs / URLs (full detail)",
            "type": "array",
            "description": "IMDb title IDs (<code>tt1375666</code>) or title URLs to fetch full enriched detail for directly — box office, full cast, awards, keywords, episodes count and more.",
            "items": {
              "type": "string"
            }
          },
          "nameIds": {
            "title": "Person IDs / URLs (full profile)",
            "type": "array",
            "description": "IMDb person IDs (<code>nm0634240</code>) or person URLs to fetch full celebrity/crew profiles for directly — bio, filmography, awards.",
            "items": {
              "type": "string"
            }
          },
          "charts": {
            "title": "Charts",
            "type": "array",
            "description": "Scrape IMDb's ranked charts. Top-250 charts include the chart rank; popularity charts reflect what's trending right now.",
            "items": {
              "type": "string",
              "enum": [
                "top_250_movies",
                "top_250_tv",
                "top_250_english",
                "top_250_india",
                "bottom_100",
                "most_popular_movies",
                "most_popular_tv",
                "top_rated_movies",
                "top_rated_tv",
                "lowest_rated_movies"
              ],
              "enumTitles": [
                "Top 250 movies",
                "Top 250 TV shows",
                "Top 250 English movies",
                "Top 250 Indian movies",
                "Bottom 100",
                "Most popular movies",
                "Most popular TV",
                "Top rated movies",
                "Top rated TV",
                "Lowest rated movies"
              ]
            }
          },
          "discover": {
            "title": "Discover by filters",
            "type": "boolean",
            "description": "Browse IMDb's full catalog using the filters below (genre, year, rating, votes, runtime, country, language, keywords) sorted however you like — like IMDb's Advanced Search. Returns the matching titles even without a keyword.",
            "default": false
          },
          "genres": {
            "title": "Genres",
            "type": "array",
            "description": "Keep only titles in these genres (also a Discover constraint).",
            "items": {
              "type": "string",
              "enum": [
                "Action",
                "Adventure",
                "Animation",
                "Biography",
                "Comedy",
                "Crime",
                "Documentary",
                "Drama",
                "Family",
                "Fantasy",
                "Film-Noir",
                "Game-Show",
                "History",
                "Horror",
                "Music",
                "Musical",
                "Mystery",
                "News",
                "Reality-TV",
                "Romance",
                "Sci-Fi",
                "Short",
                "Sport",
                "Talk-Show",
                "Thriller",
                "War",
                "Western"
              ]
            }
          },
          "titleTypes": {
            "title": "Title types",
            "type": "array",
            "description": "Keep only these title types (also a Discover constraint).",
            "items": {
              "type": "string",
              "enum": [
                "movie",
                "tvSeries",
                "tvMiniSeries",
                "tvMovie",
                "tvEpisode",
                "tvSpecial",
                "short",
                "video",
                "videoGame",
                "musicVideo",
                "podcastSeries",
                "podcastEpisode"
              ],
              "enumTitles": [
                "Movie",
                "TV series",
                "TV mini-series",
                "TV movie",
                "TV episode",
                "TV special",
                "Short",
                "Video",
                "Video game",
                "Music video",
                "Podcast series",
                "Podcast episode"
              ]
            }
          },
          "releaseYearMin": {
            "title": "Release year — from",
            "minimum": 1870,
            "maximum": 2100,
            "type": "integer",
            "description": "Only keep titles released in or after this year."
          },
          "releaseYearMax": {
            "title": "Release year — to",
            "minimum": 1870,
            "maximum": 2100,
            "type": "integer",
            "description": "Only keep titles released in or before this year."
          },
          "ratingMin": {
            "title": "Min IMDb rating",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Only keep titles with at least this IMDb rating (0–10)."
          },
          "ratingMax": {
            "title": "Max IMDb rating",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Only keep titles with at most this IMDb rating (0–10)."
          },
          "minVotes": {
            "title": "Min vote count",
            "minimum": 0,
            "type": "integer",
            "description": "Only keep titles with at least this many IMDb votes (filters out obscure entries)."
          },
          "runtimeMinMinutes": {
            "title": "Min runtime (minutes)",
            "minimum": 0,
            "type": "integer",
            "description": "Discover only — minimum runtime in minutes."
          },
          "runtimeMaxMinutes": {
            "title": "Max runtime (minutes)",
            "minimum": 0,
            "type": "integer",
            "description": "Discover only — maximum runtime in minutes."
          },
          "countries": {
            "title": "Countries of origin",
            "type": "array",
            "description": "Discover only — ISO country codes of origin, e.g. <code>US</code>, <code>GB</code>, <code>FR</code>, <code>IN</code>, <code>JP</code>, <code>KR</code>.",
            "items": {
              "type": "string"
            }
          },
          "languages": {
            "title": "Languages",
            "type": "array",
            "description": "Discover only — ISO language codes, e.g. <code>en</code>, <code>es</code>, <code>fr</code>, <code>hi</code>, <code>ja</code>, <code>ko</code>.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Plot keywords",
            "type": "array",
            "description": "Discover only — IMDb plot keywords, e.g. <code>heist</code>, <code>time-travel</code>, <code>based-on-true-story</code>, <code>superhero</code>.",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort by (Discover)",
            "enum": [
              "popularity",
              "rating",
              "numVotes",
              "releaseDate",
              "year",
              "runtime",
              "boxOffice",
              "metascore"
            ],
            "type": "string",
            "description": "How Discover orders matching titles.",
            "default": "popularity"
          },
          "sortOrder": {
            "title": "Sort order (Discover)",
            "enum": [
              "DESC",
              "ASC"
            ],
            "type": "string",
            "description": "Ascending or descending.",
            "default": "DESC"
          },
          "includeTitleDetails": {
            "title": "Include full title details",
            "type": "boolean",
            "description": "Enrich every movie/TV title with the full record: box office (budget + worldwide/domestic/international gross + opening weekend), full cast & crew with characters, directors/writers/creators, keywords, production companies, countries, languages, filming locations, akas, release dates, awards, technical specs, season/episode counts, connections and 'more like this'. Turn OFF for a faster/cheaper run that returns the still-rich core fields (rating, votes, genres, runtime, plot, content rating). Adds one request per title.",
            "default": true
          },
          "castLimit": {
            "title": "Cast & crew per title",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "How many cast/crew members to include per title (top-billed first).",
            "default": 20
          },
          "includeFullCast": {
            "title": "Fetch full cast list",
            "type": "boolean",
            "description": "Paginate the complete cast & crew list up to the limit above (titles can have hundreds of credits). Adds extra requests for large casts.",
            "default": false
          },
          "includeEpisodes": {
            "title": "Include episodes (for TV series)",
            "type": "boolean",
            "description": "For every TV series scraped, also output each episode as its own title record with season/episode number and episode rating.",
            "default": false
          },
          "maxEpisodesPerSeries": {
            "title": "Max episodes per series",
            "minimum": 1,
            "type": "integer",
            "description": "Cap on episodes output per series.",
            "default": 2000
          },
          "includeReviews": {
            "title": "Include user reviews",
            "type": "boolean",
            "description": "For every detailed title, also output IMDb user reviews (text, author, author rating, helpful votes, spoiler flag, date) as separate review records. Requires full title details to be ON.",
            "default": false
          },
          "maxReviewsPerTitle": {
            "title": "Max reviews per title",
            "minimum": 1,
            "type": "integer",
            "description": "Cap on user reviews output per title.",
            "default": 25
          },
          "maxItems": {
            "title": "Max titles & people",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of title + person records to scrape across all searches, charts, discover and IDs. (Reviews and episodes are extra sub-records.)",
            "default": 100
          },
          "deduplicate": {
            "title": "Deduplicate",
            "type": "boolean",
            "description": "Drop duplicate titles/people that appear in more than one feed in the same run.",
            "default": true
          },
          "monitorMode": {
            "title": "Monitor mode (only new / changed)",
            "type": "boolean",
            "description": "Remember items across runs in a named key-value store and emit ONLY items that are new OR whose IMDb rating / vote count / popularity changed since the last run (each carries a <code>changeType</code>: new / rating_up / rating_down / updated). Pair with Apify Schedules for new-release & rating-change alerts — it complements the scheduler (the schedule starts the run; monitor mode dedupes against prior runs).",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor key",
            "type": "string",
            "description": "Names the monitor's memory store so you can run several independent monitors (e.g. one per chart or search). Reuse the same key to keep tracking the same feed.",
            "default": "default"
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "Parallel detail requests. IMDb's GraphQL is fast — 4–8 is a good range.",
            "default": 6
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxies for the IMDb GraphQL API. The API is datacenter-clean, so the default Apify Proxy (automatic) is plenty — it rotates IPs for reliability at scale.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}