{
  "openapi": "3.0.1",
  "info": {
    "title": "IMDb Scraper — Titles, Cast, Ratings, Reviews & Search",
    "description": "Scrape IMDb movies, TV shows, people, ratings, reviews, and search/discover results via a fast cookieless API.",
    "version": "0.1",
    "x-build-id": "a6UHHR6rDJGfy2bcy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~imdb-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-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/khadinakbar~imdb-scraper/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-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/khadinakbar~imdb-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-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": {
          "queries": {
            "title": "IMDb URLs, IDs, or keywords",
            "type": "array",
            "description": "What to scrape. Accepts IMDb title IDs (e.g. 'tt1375666'), person IDs ('nm0000138'), full IMDb URLs (e.g. 'https://www.imdb.com/title/tt0903747/'), or free-text keywords ('Breaking Bad', 'Christopher Nolan'). In auto mode each item is routed automatically: tt->title, nm->person, anything else->search. NOT a CSV file path — paste the values directly.",
            "items": {
              "type": "string"
            }
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "auto",
              "title",
              "person",
              "reviews",
              "search",
              "discover"
            ],
            "type": "string",
            "description": "How to interpret 'queries'. Use 'auto' (default) to detect title/person/search per item. Use 'reviews' to pull user reviews for each given title (ID, URL, or keyword resolved to its top title). Use 'discover' to ignore queries and search by the filters below (genres, titleType, year range, minRating).",
            "default": "auto"
          },
          "maxResults": {
            "title": "Max results per query",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Upper bound on rows returned per search, discover, or reviews query (title and person lookups always return one record). Defaults to 50. Range 1-5000. Caps cost: each row is a billable result or review event.",
            "default": 50
          },
          "genres": {
            "title": "Genres (discover)",
            "type": "array",
            "description": "Discover-mode genre filter. Titles must match ALL listed genres. Use IMDb genre names like 'Action', 'Drama', 'Sci-Fi', 'Comedy', 'Horror'. Ignored unless mode is 'discover' (or filters are set with no queries).",
            "items": {
              "type": "string"
            }
          },
          "titleType": {
            "title": "Title type (discover)",
            "enum": [
              "",
              "movie",
              "tvSeries",
              "tvMiniSeries",
              "tvMovie",
              "short",
              "video",
              "videoGame",
              "tvSpecial"
            ],
            "type": "string",
            "description": "Discover-mode type filter. Restricts results to one kind of title. Choose from the list (e.g. movie, tvSeries). Leave blank to include all types.",
            "default": ""
          },
          "releaseYearMin": {
            "title": "Release year from (discover)",
            "minimum": 1870,
            "maximum": 2100,
            "type": "integer",
            "description": "Discover-mode lower bound on release year (inclusive), e.g. 2000. Leave blank for no lower bound. Ignored outside discover mode. Pair with 'releaseYearMax' for a window."
          },
          "releaseYearMax": {
            "title": "Release year to (discover)",
            "minimum": 1870,
            "maximum": 2100,
            "type": "integer",
            "description": "Discover-mode upper bound on release year (inclusive), e.g. 2024. Leave blank for no upper bound. Ignored outside discover mode. Pair with 'releaseYearMin' for a window."
          },
          "minRating": {
            "title": "Minimum IMDb rating (discover)",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Discover-mode minimum aggregate IMDb rating, 1-10 (e.g. 7 keeps titles rated 7.0+). Leave blank for no rating floor. Ignored outside discover mode. Combine with genres and year range for curated lists."
          },
          "sortBy": {
            "title": "Sort by (discover)",
            "enum": [
              "POPULARITY",
              "RATING",
              "VOTES",
              "NEWEST"
            ],
            "type": "string",
            "description": "Discover-mode result ordering. POPULARITY = current IMDb popularity (default), RATING = highest user rating first, VOTES = most-voted first, NEWEST = most recent release first. Ignored outside discover mode.",
            "default": "POPULARITY"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy settings. Defaults to Apify datacenter proxy, which is sufficient for IMDb's public API. Leave as default unless you have a reason to change it.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}