{
  "openapi": "3.0.1",
  "info": {
    "title": "Werk.nl Jobs Scraper",
    "description": "Scrape werk.nl vacatures (UWV) by keyword, location, contract type, and education level. Get title, employer, salary indication, hours, contact email and phone, apply URL, and full description. Export as JSON, CSV, or Excel.",
    "version": "1.0",
    "x-build-id": "yYifF4XImKE3AqimN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parsebird~werk-nl-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parsebird-werk-nl-jobs-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/parsebird~werk-nl-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parsebird-werk-nl-jobs-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/parsebird~werk-nl-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parsebird-werk-nl-jobs-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": {
          "query": {
            "title": "Search keyword",
            "type": "string",
            "description": "Enter a job title, skill, or keyword in Dutch or English (for example verpleegkundige, chauffeur, or developer). Leave empty to browse all vacatures on werk.nl."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "Enter a Dutch city or postcode (for example Amsterdam or 1012WZ). Combined with the search radius below."
          },
          "distanceKm": {
            "title": "Search radius",
            "enum": [
              "0",
              "5",
              "10",
              "25",
              "50",
              "75",
              "100",
              "125",
              "150",
              "300"
            ],
            "type": "string",
            "description": "Distance around the location to include. Only used when a location is set. 'No radius' returns all vacatures, ordered by distance when you sort by nearest.",
            "default": "25"
          },
          "includeVariableLocations": {
            "title": "Include jobs with varying work locations",
            "type": "boolean",
            "description": "Also include vacatures whose work location changes (werk.nl 'wisselende werklocatie') when searching around a location.",
            "default": false
          },
          "referenceNumbers": {
            "title": "Vacature reference numbers or URLs",
            "type": "array",
            "description": "Fetch specific vacatures directly by werk.nl reference number (for example 71735353) or vacature URL (https://www.werk.nl/nl/vacatures/71735353). When set, the search fields above are ignored.",
            "items": {
              "type": "string"
            }
          },
          "contractType": {
            "title": "Contract type",
            "type": "array",
            "description": "Keep only vacatures with these contract types. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "vast",
                "mogelijk vast",
                "tijdelijk"
              ],
              "enumTitles": [
                "Vast (permanent)",
                "Mogelijk vast (possibly permanent)",
                "Tijdelijk (temporary)"
              ]
            },
            "default": []
          },
          "educationLevel": {
            "title": "Education level",
            "type": "array",
            "description": "Keep only vacatures that ask for these education levels.",
            "items": {
              "type": "string",
              "enum": [
                "basisonderwijs",
                "vmbo",
                "havo/vwo",
                "mbo",
                "hbo",
                "wo",
                "niet opgegeven"
              ],
              "enumTitles": [
                "Basisonderwijs",
                "VMBO",
                "Havo/VWO",
                "MBO",
                "HBO/bachelor",
                "WO/master",
                "Niet opgegeven (not specified)"
              ]
            },
            "default": []
          },
          "workingHours": {
            "title": "Hours per week",
            "type": "array",
            "description": "Keep only vacatures in these weekly-hours ranges.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "6"
              ],
              "enumTitles": [
                "0 - 8 hours",
                "9 - 16 hours",
                "17 - 24 hours",
                "25 - 32 hours",
                "33 - 40 hours",
                "More than 40 hours"
              ]
            },
            "default": []
          },
          "workSchedule": {
            "title": "Working times",
            "type": "array",
            "description": "Keep only office-hours jobs or jobs with other (shift, evening, weekend) working times.",
            "items": {
              "type": "string",
              "enum": [
                "kantoortijden",
                "anders"
              ],
              "enumTitles": [
                "Kantoortijden (office hours)",
                "Anders (other / varying times)"
              ]
            },
            "default": []
          },
          "profession": {
            "title": "Profession (beroep)",
            "type": "array",
            "description": "Keep only vacatures in these werk.nl professions, written exactly as werk.nl shows them in the 'Beroep' filter (for example Verpleegkundige or Vrachtwagenchauffeur).",
            "items": {
              "type": "string"
            }
          },
          "driversLicense": {
            "title": "Driver's license",
            "type": "array",
            "description": "Keep only vacatures that ask for these driver's license categories.",
            "items": {
              "type": "string",
              "enum": [
                "a",
                "am",
                "b",
                "be",
                "c",
                "c1",
                "c1e",
                "ce",
                "d",
                "d1",
                "d1e",
                "de",
                "t"
              ],
              "enumTitles": [
                "A",
                "AM",
                "B",
                "BE",
                "C",
                "C1",
                "C1E",
                "CE",
                "D",
                "D1",
                "D1E",
                "DE",
                "T"
              ]
            },
            "default": []
          },
          "language": {
            "title": "Required language",
            "type": "array",
            "description": "Keep only vacatures that list these languages as a requirement.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "3",
                "2",
                "4",
                "5",
                "8",
                "15",
                "16",
                "19",
                "29",
                "31",
                "41",
                "46",
                "72"
              ],
              "enumTitles": [
                "Nederlands",
                "Engels",
                "Duits",
                "Frans",
                "Spaans",
                "Italiaans",
                "Turks",
                "Arabisch",
                "Portugees",
                "Pools",
                "Russisch",
                "Chinees",
                "Japans",
                "Fries"
              ]
            },
            "default": []
          },
          "daysOld": {
            "title": "Modified within (days)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return vacatures modified within the last N days. 0 returns all.",
            "default": 0
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "datum",
              "afstand",
              "leerbaan",
              "stageplaats"
            ],
            "type": "string",
            "description": "Order of the search results. Nearest first needs a location.",
            "default": "datum"
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of vacatures to save. 0 = no limit (werk.nl serves up to 200,000 results per search). Start small to check your search.",
            "default": 100
          },
          "includeDetails": {
            "title": "Include full job details",
            "type": "boolean",
            "description": "Open each vacature to add the description, salary indication, contact person, email, phone, apply URL, employer address, and requirements. Turn off for faster search-results-only output.",
            "default": true
          },
          "descriptionMaxLength": {
            "title": "Description max length",
            "minimum": 0,
            "type": "integer",
            "description": "Cut descriptions to this many characters. 0 = keep the full text.",
            "default": 0
          },
          "compact": {
            "title": "Compact output",
            "type": "boolean",
            "description": "Return only the core fields. Useful for AI agents, MCP tools, and token-limited workflows.",
            "default": false
          },
          "incrementalMode": {
            "title": "Incremental mode",
            "type": "boolean",
            "description": "Compare each run with the previous run of the same search and return only NEW, UPDATED, and REAPPEARED vacatures. Use it on a schedule.",
            "default": false
          },
          "stateKey": {
            "title": "State key",
            "type": "string",
            "description": "Optional name for the tracked search. Leave empty to derive one automatically from your search inputs, so different searches never share state."
          },
          "emitUnchanged": {
            "title": "Include unchanged vacatures",
            "type": "boolean",
            "description": "Also return vacatures that did not change since the previous run (as changeType UNCHANGED).",
            "default": false
          },
          "emitExpired": {
            "title": "Include expired vacatures",
            "type": "boolean",
            "description": "Also return vacatures that disappeared from the search since the previous run (as changeType EXPIRED). Only checked when the whole search was scanned.",
            "default": false
          },
          "skipReposts": {
            "title": "Skip reposts",
            "type": "boolean",
            "description": "Drop new vacatures that match the content of a previously expired vacature (same title, employer, location, and description).",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "werk.nl works without a proxy. Set one only if your account needs a specific outgoing IP.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}