{
  "openapi": "3.0.1",
  "info": {
    "title": "🍿 Netflix Search Scraper",
    "description": "Netflix Search Scraper extracts Netflix movies and series with IMDb ratings, votes, genres, cast, episodes, posters, plot details, and full country-by-country streaming availability, including added and expiry dates. Perfect for streaming research, licensing, and AI pipelines.",
    "version": "1.0",
    "x-build-id": "TczDHB5d7t0CqYeGf"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/citrine_venus~netflix-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-citrine_venus-netflix-search-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/citrine_venus~netflix-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-citrine_venus-netflix-search-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/citrine_venus~netflix-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-citrine_venus-netflix-search-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",
        "required": [
          "urls"
        ],
        "properties": {
          "urls": {
            "title": "🔗 Netflix / catalogue links",
            "type": "array",
            "description": "🎬 Paste links to individual titles or to a search page — one per line, or upload a file. Works with `https://www.netflix.com/title/81002370`, `https://www.netflix.com/search?q=fashion`, and catalogue links that contain the title name. Leave empty if you only want to use search terms below.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "🔎 Search terms",
            "type": "array",
            "description": "🗺️ Plain words to search the Netflix catalogue for — for example `fashion`, `true crime`, `korean thriller`. Each line is searched separately, exactly like typing it into the search box.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "📬 Max titles per search",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "📬 How many titles to collect for each search term. A title link always returns exactly one title, whatever this is set to.",
            "default": 10
          },
          "maxScanned": {
            "title": "🧮 Max entries scanned per search",
            "minimum": 100,
            "maximum": 200000,
            "type": "integer",
            "description": "🧮 Safety cap on how deep a single search digs before giving up. Raise it when a narrow filter means the matches you want sit far down the results.",
            "default": 20000
          },
          "type": {
            "title": "🎞️ Movies or series",
            "type": "string",
            "description": "🎞️ Restrict results to one kind of title.",
            "default": ""
          },
          "startYear": {
            "title": "📅 Released from",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "📅 Earliest release year to include. Leave empty for no lower bound."
          },
          "endYear": {
            "title": "📅 Released until",
            "minimum": 1900,
            "maximum": 2100,
            "type": "integer",
            "description": "📅 Latest release year to include. Leave empty for no upper bound. If you enter the two years the wrong way round they are swapped for you."
          },
          "minRating": {
            "title": "⭐ Minimum IMDb rating",
            "minimum": 0,
            "maximum": 10,
            "type": "number",
            "description": "⭐ Only include titles rated at or above this, on the 0–10 IMDb scale."
          },
          "maxRating": {
            "title": "⭐ Maximum IMDb rating",
            "minimum": 0,
            "maximum": 10,
            "type": "number",
            "description": "⭐ Only include titles rated at or below this, on the 0–10 IMDb scale."
          },
          "orderBy": {
            "title": "🔃 Sort results by",
            "enum": [
              "Relevance",
              "Date",
              "DateAsc",
              "Rating",
              "RatingAsc",
              "Title",
              "VideoType",
              "FilmYear",
              "FilmYearAsc",
              "Runtime"
            ],
            "type": "string",
            "description": "🔃 How the catalogue orders the matches before they are collected.",
            "default": "Relevance"
          },
          "filterBy": {
            "title": "⏳ Availability filter",
            "enum": [
              "",
              "Expiring",
              "New last 24 hours"
            ],
            "type": "string",
            "description": "⏳ Show only titles that are about to leave Netflix, or only titles added in the last 24 hours.",
            "default": ""
          },
          "countries": {
            "title": "🌍 Regions",
            "type": "array",
            "description": "🌍 Only return titles streaming in these regions. Leave empty to search every region the catalogue covers.",
            "items": {
              "type": "string",
              "enum": [
                "AR",
                "AU",
                "BE",
                "BR",
                "CA",
                "CO",
                "CZ",
                "FR",
                "DE",
                "GR",
                "HK",
                "HU",
                "IS",
                "IN",
                "IL",
                "IT",
                "JP",
                "LT",
                "MY",
                "MX",
                "NL",
                "PH",
                "PL",
                "PT",
                "RO",
                "SG",
                "SK",
                "ZA",
                "KR",
                "ES",
                "SE",
                "CH",
                "TH",
                "TR",
                "UA",
                "GB",
                "US"
              ],
              "enumTitles": [
                "🇦🇷 Argentina",
                "🇦🇺 Australia",
                "🇧🇪 Belgium",
                "🇧🇷 Brazil",
                "🇨🇦 Canada",
                "🇨🇴 Colombia",
                "🇨🇿 Czech Republic",
                "🇫🇷 France",
                "🇩🇪 Germany",
                "🇬🇷 Greece",
                "🇭🇰 Hong Kong",
                "🇭🇺 Hungary",
                "🇮🇸 Iceland",
                "🇮🇳 India",
                "🇮🇱 Israel",
                "🇮🇹 Italy",
                "🇯🇵 Japan",
                "🇱🇹 Lithuania",
                "🇲🇾 Malaysia",
                "🇲🇽 Mexico",
                "🇳🇱 Netherlands",
                "🇵🇭 Philippines",
                "🇵🇱 Poland",
                "🇵🇹 Portugal",
                "🇷🇴 Romania",
                "🇸🇬 Singapore",
                "🇸🇰 Slovakia",
                "🇿🇦 South Africa",
                "🇰🇷 South Korea",
                "🇪🇸 Spain",
                "🇸🇪 Sweden",
                "🇨🇭 Switzerland",
                "🇹🇭 Thailand",
                "🇹🇷 Turkey",
                "🇺🇦 Ukraine",
                "🇬🇧 United Kingdom",
                "🇺🇸 United States"
              ]
            },
            "default": []
          },
          "countryMatch": {
            "title": "🧩 How to match regions",
            "enum": [
              "or",
              "and",
              "unique",
              "notin"
            ],
            "type": "string",
            "description": "🧩 With several regions selected: `any` returns titles streaming in at least one, `all` only titles streaming in every one, `only these` titles that stream in your picks and nowhere else, and `not in` titles that stream anywhere except your picks.",
            "default": "or"
          },
          "audio": {
            "title": "🗣️ Audio language",
            "type": "string",
            "description": "🗣️ Only titles with this audio track — for example `English`, `Spanish`, `Hindi`. Pick from the list or type your own.",
            "default": ""
          },
          "subtitle": {
            "title": "💬 Subtitle language",
            "type": "string",
            "description": "💬 Only titles with subtitles in this language. Pick from the list or type your own.",
            "default": ""
          },
          "audioSubtitleMatch": {
            "title": "🧩 How to match audio & subtitles",
            "enum": [
              "or",
              "and"
            ],
            "type": "string",
            "description": "🧩 With both an audio and a subtitle language chosen: `either` matches titles that have one of them, `both` only titles that have both.",
            "default": "or"
          },
          "includeImdbExtras": {
            "title": "⭐ IMDb ratings, votes, awards & plot",
            "type": "boolean",
            "description": "⭐ Add the IMDb rating, vote count, metascore, awards, full plot, maturity rating and large artwork to every title.",
            "default": true
          },
          "includeCountryAvailability": {
            "title": "🌍 Full region-by-region availability",
            "type": "boolean",
            "description": "🌍 The headline feature: every region a title streams in, with the date it was added, its expiry date, the audio and subtitle languages available there, and which seasons are carried. The search page itself only ever shows the first handful of regions.",
            "default": true
          },
          "includeGenres": {
            "title": "🎭 Genres",
            "type": "boolean",
            "description": "🎭 Add the catalogue's own genre labels for every title.",
            "default": true
          },
          "includeCast": {
            "title": "🎬 Cast & crew",
            "type": "boolean",
            "description": "🎬 Add actors, directors, writers and producers for every title.",
            "default": false
          },
          "includeEpisodes": {
            "title": "📺 Seasons & episodes",
            "type": "boolean",
            "description": "📺 For series only: add every season with its episode list, titles, synopses and stills. Can make records large.",
            "default": false
          },
          "genreIds": {
            "title": "🏷️ Genre ids",
            "type": "string",
            "description": "🏷️ Comma-separated catalogue genre ids, passed straight through to the search. Leave empty to search all genres.",
            "default": ""
          },
          "personId": {
            "title": "🧑‍🎤 Person id",
            "type": "string",
            "description": "🧑‍🎤 A catalogue person id, to return only titles that person worked on. Leave empty to search everyone.",
            "default": ""
          },
          "proxyConfiguration": {
            "title": "🌐 Proxy configuration",
            "type": "object",
            "description": "🚦 By default the run starts on a direct connection with no proxy, and automatically switches to a datacenter and then a residential route only if the catalogue pushes back. Once it switches it stays switched. Pick your own route here to override that.",
            "default": {
              "useApifyProxy": false
            }
          },
          "backupCountry": {
            "title": "🌎 Backup region",
            "enum": [
              "US",
              "GB",
              "CA",
              "AU",
              "IN",
              "DE",
              "FR",
              "ES",
              "IT",
              "BR",
              "MX",
              "JP",
              "KR",
              "NL",
              "SE",
              "PL",
              "TR",
              "ZA"
            ],
            "type": "string",
            "description": "🌎 If the main catalogue index is unreachable, the run automatically falls back to a second index that can only look at one region at a time. This is the region it uses.",
            "default": "US"
          },
          "maxConcurrency": {
            "title": "⚡ Titles in parallel",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "🏎️ How many titles to collect details for at the same time.",
            "default": 2
          },
          "maxRequestRetries": {
            "title": "🔁 Retries per request",
            "minimum": 2,
            "maximum": 15,
            "type": "integer",
            "description": "🛡️ Attempts before a request is given up on. The catalogue can be slow to answer, so a generous number here genuinely helps — lower it only if you would rather a struggling run finish quickly than finish complete.",
            "default": 8
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}