{
  "openapi": "3.0.1",
  "info": {
    "title": "District Movies Scraper — India Catalog, Cast & Critic Reviews",
    "description": "Scrape movies from District (district.in, India): now showing in any city or the full catalog of 2,000+ titles. Synopsis, cast with bios, trailers, posters, languages, formats, show counts, per-outlet critic ratings and critic reviews (TOI, NDTV, India Today and more). No login needed.",
    "version": "0.1",
    "x-build-id": "mXLnpIF81bLL0MIum"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yugenox~district-movies-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yugenox-district-movies-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/yugenox~district-movies-scraper/runs": {
      "post": {
        "operationId": "runs-sync-yugenox-district-movies-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/yugenox~district-movies-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-yugenox-district-movies-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": {
          "mode": {
            "title": "What to scrape",
            "enum": [
              "nowShowing",
              "fullCatalog"
            ],
            "type": "string",
            "description": "<b>Now showing</b>: every movie currently playing (or open for advance booking) in the cities below, with show counts per language and format.<br><b>Full catalog</b>: every movie District has a page for (2,000+ titles: past, current and upcoming), newest first. Cities are ignored in this mode.",
            "default": "nowShowing"
          },
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "City names, e.g. mumbai, bengaluru (or bangalore), delhi-ncr, hyderabad, chennai, pune, kolkata, ahmedabad. Neighbourhoods such as \"Bandra\" also work. Use <code>top</code> for District's 12 top cities. One movie playing in several cities is returned once, with a per-city breakdown.",
            "default": [
              "mumbai"
            ],
            "items": {
              "type": "string"
            }
          },
          "movieUrls": {
            "title": "Specific movies (optional)",
            "type": "array",
            "description": "District movie URLs (https://www.district.in/movies/...-MV207237) or numeric movie ids. When set, only these movies are scraped and the mode and cities are ignored. A URL that contains a city (\"-in-mumbai-\") also returns that city's show counts.",
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "Include full movie details",
            "type": "boolean",
            "description": "Synopsis, cast, trailers, image gallery and all languages. Turn off in \"Now showing\" mode for a faster, lighter listing (name, genres, censor rating, duration, poster, formats, show counts and critic ratings are still included). Always on for the full catalog and specific movies.",
            "default": true
          },
          "includeCriticReviews": {
            "title": "Include critic reviews",
            "type": "boolean",
            "description": "Critic reviews shown on District (Times of India, India Today, NDTV, The Indian Express, Bollywood Hungama, News18, Rediff, Pinkvilla, Firstpost, Taran Adarsh...) with reviewer, date and the outlet's rating. Only fetched for movies that have reviews.",
            "default": true
          },
          "fullReviewText": {
            "title": "Full review text",
            "type": "boolean",
            "description": "Off: each review has a ~400-character excerpt plus its full length. On: the complete review text (usually 2,000–7,000 characters).",
            "default": false
          },
          "reviewsAsSeparateItems": {
            "title": "Reviews as separate rows",
            "type": "boolean",
            "description": "Also output one row per critic review (dataType \"review\") instead of nesting reviews inside each movie row. Handy for spreadsheets and sentiment analysis. Movie rows keep their ratings and review counts.",
            "default": false
          },
          "includeCastBios": {
            "title": "Include cast bios",
            "type": "boolean",
            "description": "Short biography for each cast member where District has one.",
            "default": true
          },
          "onlyWithCriticReviews": {
            "title": "Only movies with critic reviews or ratings",
            "type": "boolean",
            "description": "Skip movies that have no critic rating or review on District. In full-catalog mode roughly 1 title in 9 qualifies (~250 movies; a full scan takes about a minute), so the run checks many more movies than it returns (you only pay for returned rows).",
            "default": false
          },
          "languages": {
            "title": "Languages",
            "type": "array",
            "description": "Keep movies in any of these languages, e.g. Hindi, Telugu, Tamil, English, Malayalam, Kannada. Empty = all.",
            "items": {
              "type": "string"
            }
          },
          "genres": {
            "title": "Genres",
            "type": "array",
            "description": "Keep movies with any of these genres, e.g. Action, Drama, Comedy, Thriller, Horror. Empty = all.",
            "items": {
              "type": "string"
            }
          },
          "formats": {
            "title": "Screen formats (now showing only)",
            "type": "array",
            "description": "Keep movies playing in any of these formats, e.g. IMAX, 4DX, 3D, 2D. Partial match: \"imax\" matches \"IMAX 2D\". Empty = all.",
            "items": {
              "type": "string"
            }
          },
          "releasedAfter": {
            "title": "Released on or after",
            "type": "string",
            "description": "YYYY-MM-DD, or relative like \"30 days\" (that many days ago). Combine with the full catalog to get e.g. this year's releases."
          },
          "releasedBefore": {
            "title": "Released on or before",
            "type": "string",
            "description": "YYYY-MM-DD, \"today\" (excludes upcoming movies), or relative like \"30 days\" (that many days from now)."
          },
          "maxItems": {
            "title": "Max movies",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of movie rows. Review rows (when output separately) don't count toward this. 0 = no limit.",
            "default": 200
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Parallel requests. The default is fast and safe.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify datacenter proxy works well and is the default. If requests start failing, the actor switches to residential (India) automatically.",
            "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}